short and long log messages
Matthieu Moy
Matthieu.Moy at imag.fr
Mon May 15 18:25:09 BST 2006
Hi,
Something I liked in GNU Arch was the short Vs long log message (-s and
-L on the command line, or Summary: ... and body in the log message header).
This allows a simple one-line description, convenient in, at least, "bzr
log --line" and perhaps "bzr log --short", as well as a detailed one
(that you can get with "bzr log -r XX").
AFAIK, there is no such thing in bzr. Indeed, a user can use the first
line of the log message as a short description, and the next as a long
one. I think this is the way to do it, but this deserve a little support
in bzr itself: the log formatter for "--line" and "--short" should split
the message at the first newline, instead of truncating after a number
of characters. The patch below does this for --line.
Also, this should be documented as such (in the tutorial probably).
Any opinion?
--
Matthieu
=== modified file 'bzrlib/log.py'
--- bzrlib/log.py
+++ bzrlib/log.py
@@ -430,6 +430,13 @@
return str
return str[:max_len-3]+'...'
+ def firstline(self, str):
+ idx = str.find("\n")
+ if idx != -1:
+ return str[:idx]
+ else:
+ return str
+
def date_string(self, rev):
from bzrlib.osutils import format_date
return format_date(rev.timestamp, rev.timezone or 0,
@@ -449,7 +456,7 @@
def log_string(self, rev, max_chars):
out = [self.truncate(self.short_committer(rev), 20)]
out.append(self.date_string(rev))
- out.append(self.message(rev).replace('\n', ' '))
+ out.append(self.firstline(self.message(rev)))
return self.truncate(" ".join(out).rstrip('\n'), max_chars)
def line_log(rev, max_chars):
More information about the bazaar
mailing list