Rev 4214: merge indicators in log --long (Ian Clatworthy) in file:///home/pqm/archives/thelove/bzr/%2Btrunk/
Canonical.com Patch Queue Manager
pqm at pqm.ubuntu.com
Mon Mar 30 01:48:55 BST 2009
At file:///home/pqm/archives/thelove/bzr/%2Btrunk/
------------------------------------------------------------
revno: 4214
revision-id: pqm at pqm.ubuntu.com-20090330004851-70utb2qlpnc4u9um
parent: pqm at pqm.ubuntu.com-20090329043818-5luxyk8q3opz4ulu
parent: ian.clatworthy at canonical.com-20090329235211-uad2ldqofw77q6ch
committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
branch nick: +trunk
timestamp: Mon 2009-03-30 01:48:51 +0100
message:
merge indicators in log --long (Ian Clatworthy)
modified:
NEWS NEWS-20050323055033-4e00b5db738777ff
bzrlib/log.py log.py-20050505065812-c40ce11702fe5fb1
bzrlib/tests/blackbox/test_log.py test_log.py-20060112090212-78f6ea560c868e24
bzrlib/tests/test_log.py testlog.py-20050728115707-1a514809d7d49309
------------------------------------------------------------
revno: 4213.1.1
revision-id: ian.clatworthy at canonical.com-20090329235211-uad2ldqofw77q6ch
parent: pqm at pqm.ubuntu.com-20090329043818-5luxyk8q3opz4ulu
parent: ian.clatworthy at canonical.com-20090329023513-jggqg2dd6r2jwo8e
committer: Ian Clatworthy <ian.clatworthy at canonical.com>
branch nick: ianc-integration
timestamp: Mon 2009-03-30 09:52:11 +1000
message:
merge indicators in log --long (Ian Clatworthy)
modified:
NEWS NEWS-20050323055033-4e00b5db738777ff
bzrlib/log.py log.py-20050505065812-c40ce11702fe5fb1
bzrlib/tests/blackbox/test_log.py test_log.py-20060112090212-78f6ea560c868e24
bzrlib/tests/test_log.py testlog.py-20050728115707-1a514809d7d49309
------------------------------------------------------------
revno: 4208.2.2
revision-id: ian.clatworthy at canonical.com-20090329023513-jggqg2dd6r2jwo8e
parent: ian.clatworthy at canonical.com-20090327015311-2pjd7s0yqebuf9sb
committer: Ian Clatworthy <ian.clatworthy at canonical.com>
branch nick: bzr.log-merge-indicator
timestamp: Sun 2009-03-29 12:35:13 +1000
message:
show --levels 0 in advice, not just -n0
modified:
bzrlib/log.py log.py-20050505065812-c40ce11702fe5fb1
bzrlib/tests/blackbox/test_log.py test_log.py-20060112090212-78f6ea560c868e24
bzrlib/tests/test_log.py testlog.py-20050728115707-1a514809d7d49309
------------------------------------------------------------
revno: 4208.2.1
revision-id: ian.clatworthy at canonical.com-20090327015311-2pjd7s0yqebuf9sb
parent: pqm at pqm.ubuntu.com-20090326131816-4nzmlssnd4huc5cu
committer: Ian Clatworthy <ian.clatworthy at canonical.com>
branch nick: bzr.log-merge-indicator
timestamp: Fri 2009-03-27 11:53:11 +1000
message:
merge indicators in log --long
modified:
NEWS NEWS-20050323055033-4e00b5db738777ff
bzrlib/log.py log.py-20050505065812-c40ce11702fe5fb1
bzrlib/tests/blackbox/test_log.py test_log.py-20060112090212-78f6ea560c868e24
bzrlib/tests/test_log.py testlog.py-20050728115707-1a514809d7d49309
=== modified file 'NEWS'
--- a/NEWS 2009-03-29 03:44:21 +0000
+++ b/NEWS 2009-03-29 23:52:11 +0000
@@ -86,6 +86,11 @@
about what was being considered and what was being ignored.
(Ian Clatworthy)
+* The ``long`` log formatter now shows [merge] indicators. If
+ only one level of revisions is displayed and merges are found,
+ the ``long`` and ``short`` log formatters now tell the user
+ how to see the hidden merged revisions. (Ian Clatworthy)
+
* Tildes are no longer escaped. No more %7Euser/project/branch!
(Jonathan Lange)
=== modified file 'bzrlib/log.py'
--- a/bzrlib/log.py 2009-03-26 05:44:58 +0000
+++ b/bzrlib/log.py 2009-03-29 23:52:11 +0000
@@ -356,6 +356,7 @@
generator = self._generator_factory(self.branch, rqst)
for lr in generator.iter_log_revisions():
lf.log_revision(lr)
+ lf.show_advice()
def _generator_factory(self, branch, rqst):
"""Make the LogGenerator object to use.
@@ -1333,6 +1334,7 @@
delta_format = 2 # long format
self.delta_format = delta_format
self.levels = levels
+ self._merge_count = 0
def get_levels(self):
"""Get the number of levels to display or 0 for all."""
@@ -1350,6 +1352,19 @@
"""
raise NotImplementedError('not implemented in abstract base')
+ def show_advice(self):
+ """Output user advice, if any, when the log is completed."""
+ if self.levels == 1 and self._merge_count > 0:
+ advice_sep = self.get_advice_separator()
+ if advice_sep:
+ self.to_file.write(advice_sep)
+ self.to_file.write(
+ "Use --levels 0 (or -n0) to see merged revisions.\n")
+
+ def get_advice_separator(self):
+ """Get the text separating the log from the closing advice."""
+ return ''
+
def short_committer(self, rev):
name, address = config.parse_username(rev.committer)
if name:
@@ -1362,6 +1377,14 @@
return name
return address
+ def merge_marker(self, revision):
+ """Get the merge marker to include in the output or '' if none."""
+ if len(revision.rev.parent_ids) > 1:
+ self._merge_count += 1
+ return ' [merge]'
+ else:
+ return ''
+
def show_properties(self, revision, indent):
"""Displays the custom properties returned by each registered handler.
@@ -1389,7 +1412,8 @@
to_file = self.to_file
to_file.write(indent + '-' * 60 + '\n')
if revision.revno is not None:
- to_file.write(indent + 'revno: %s\n' % (revision.revno,))
+ to_file.write(indent + 'revno: %s%s\n' % (revision.revno,
+ self.merge_marker(revision)))
if revision.tags:
to_file.write(indent + 'tags: %s\n' % (', '.join(revision.tags)))
if self.show_ids:
@@ -1431,6 +1455,10 @@
# revision information) so that the output can be fed to patch -p0
self.show_diff(self.to_exact_file, revision.diff, indent)
+ def get_advice_separator(self):
+ """Get the text separating the log from the closing advice."""
+ return '-' * 60 + '\n'
+
class ShortLogFormatter(LogFormatter):
@@ -1465,9 +1493,6 @@
offset = ' ' * (revno_width + 1)
to_file = self.to_file
- is_merge = ''
- if len(revision.rev.parent_ids) > 1:
- is_merge = ' [merge]'
tags = ''
if revision.tags:
tags = ' {%s}' % (', '.join(revision.tags))
@@ -1477,7 +1502,7 @@
revision.rev.timezone or 0,
self.show_timezone, date_fmt="%Y-%m-%d",
show_offset=False),
- tags, is_merge))
+ tags, self.merge_marker(revision)))
self.show_properties(revision.rev, indent+offset)
if self.show_ids:
to_file.write(indent + offset + 'revision-id:%s\n'
=== modified file 'bzrlib/tests/blackbox/test_log.py'
--- a/bzrlib/tests/blackbox/test_log.py 2009-03-26 05:41:59 +0000
+++ b/bzrlib/tests/blackbox/test_log.py 2009-03-29 02:35:13 +0000
@@ -341,14 +341,14 @@
log = normalize_log(out)
self.assertEqualDiff(log, """\
------------------------------------------------------------
-revno: 2
+revno: 2 [merge]
committer: Lorem Ipsum <test at example.com>
branch nick: parent
timestamp: Just now
message:
merge branch 1
------------------------------------------------------------
- revno: 1.1.2
+ revno: 1.1.2 [merge]
committer: Lorem Ipsum <test at example.com>
branch nick: child
timestamp: Just now
@@ -384,7 +384,7 @@
log = normalize_log(out)
self.assertEqualDiff(log, """\
------------------------------------------------------------
-revno: 2
+revno: 2 [merge]
committer: Lorem Ipsum <test at example.com>
branch nick: parent
timestamp: Just now
@@ -397,6 +397,8 @@
timestamp: Just now
message:
first post
+------------------------------------------------------------
+Use --levels 0 (or -n0) to see merged revisions.
""")
def test_force_merge_revisions_on(self):
@@ -449,7 +451,7 @@
log = normalize_log(out)
self.assertEqualDiff(log, """\
------------------------------------------------------------
-revno: 1.1.2
+revno: 1.1.2 [merge]
committer: Lorem Ipsum <test at example.com>
branch nick: child
timestamp: Just now
@@ -471,7 +473,7 @@
log = normalize_log(out)
self.assertEqualDiff(log, """\
------------------------------------------------------------
-revno: 1.1.2
+revno: 1.1.2 [merge]
committer: Lorem Ipsum <test at example.com>
branch nick: child
timestamp: Just now
@@ -542,7 +544,7 @@
log = normalize_log(out)
self.assertEqualDiff(subst_dates(log), """\
------------------------------------------------------------
-revno: 2
+revno: 2 [merge]
committer: Lorem Ipsum <test at example.com>
branch nick: parent
timestamp: Just now
@@ -836,43 +838,43 @@
self.assertNotContainsRe(log, 'revno: 2\n')
self.assertNotContainsRe(log, 'revno: 3\n')
self.assertNotContainsRe(log, 'revno: 3.1.1\n')
- self.assertNotContainsRe(log, 'revno: 4\n')
+ self.assertNotContainsRe(log, 'revno: 4 ')
log = self.run_bzr('log file2')[0]
self.assertNotContainsRe(log, 'revno: 1\n')
self.assertContainsRe(log, 'revno: 2\n')
self.assertNotContainsRe(log, 'revno: 3\n')
self.assertContainsRe(log, 'revno: 3.1.1\n')
- self.assertContainsRe(log, 'revno: 4\n')
+ self.assertContainsRe(log, 'revno: 4 ')
log = self.run_bzr('log file3')[0]
self.assertNotContainsRe(log, 'revno: 1\n')
self.assertNotContainsRe(log, 'revno: 2\n')
self.assertContainsRe(log, 'revno: 3\n')
self.assertNotContainsRe(log, 'revno: 3.1.1\n')
- self.assertNotContainsRe(log, 'revno: 4\n')
+ self.assertNotContainsRe(log, 'revno: 4 ')
log = self.run_bzr('log -r3.1.1 file2')[0]
self.assertNotContainsRe(log, 'revno: 1\n')
self.assertNotContainsRe(log, 'revno: 2\n')
self.assertNotContainsRe(log, 'revno: 3\n')
self.assertContainsRe(log, 'revno: 3.1.1\n')
- self.assertNotContainsRe(log, 'revno: 4\n')
+ self.assertNotContainsRe(log, 'revno: 4 ')
log = self.run_bzr('log -r4 file2')[0]
self.assertNotContainsRe(log, 'revno: 1\n')
self.assertNotContainsRe(log, 'revno: 2\n')
self.assertNotContainsRe(log, 'revno: 3\n')
self.assertContainsRe(log, 'revno: 3.1.1\n')
- self.assertContainsRe(log, 'revno: 4\n')
+ self.assertContainsRe(log, 'revno: 4 ')
log = self.run_bzr('log -r3.. file2')[0]
self.assertNotContainsRe(log, 'revno: 1\n')
self.assertNotContainsRe(log, 'revno: 2\n')
self.assertNotContainsRe(log, 'revno: 3\n')
self.assertContainsRe(log, 'revno: 3.1.1\n')
- self.assertContainsRe(log, 'revno: 4\n')
+ self.assertContainsRe(log, 'revno: 4 ')
log = self.run_bzr('log -r..3 file2')[0]
self.assertNotContainsRe(log, 'revno: 1\n')
self.assertContainsRe(log, 'revno: 2\n')
self.assertNotContainsRe(log, 'revno: 3\n')
self.assertNotContainsRe(log, 'revno: 3.1.1\n')
- self.assertNotContainsRe(log, 'revno: 4\n')
+ self.assertNotContainsRe(log, 'revno: 4 ')
def test_log_file_historical_missing(self):
# Check logging a deleted file gives an error if the
@@ -892,7 +894,7 @@
self.assertContainsRe(log, 'revno: 2\n')
self.assertNotContainsRe(log, 'revno: 3\n')
self.assertContainsRe(log, 'revno: 3.1.1\n')
- self.assertContainsRe(log, 'revno: 4\n')
+ self.assertContainsRe(log, 'revno: 4 ')
def test_log_file_historical_start(self):
# Check logging a deleted file is ok if the file existed
@@ -904,7 +906,7 @@
self.assertNotContainsRe(log, 'revno: 2\n')
self.assertNotContainsRe(log, 'revno: 3\n')
self.assertNotContainsRe(log, 'revno: 3.1.1\n')
- self.assertNotContainsRe(log, 'revno: 4\n')
+ self.assertNotContainsRe(log, 'revno: 4 ')
def test_log_file_renamed(self):
"""File matched against revision range, not current tree."""
@@ -922,7 +924,7 @@
self.assertNotContainsRe(log, 'revno: 2\n')
self.assertContainsRe(log, 'revno: 3\n')
self.assertNotContainsRe(log, 'revno: 3.1.1\n')
- self.assertNotContainsRe(log, 'revno: 4\n')
+ self.assertNotContainsRe(log, 'revno: 4 ')
def test_line_log_file(self):
"""The line log for a file should only list relevant mainline revs"""
=== modified file 'bzrlib/tests/test_log.py'
--- a/bzrlib/tests/test_log.py 2009-03-24 01:53:42 +0000
+++ b/bzrlib/tests/test_log.py 2009-03-29 02:35:13 +0000
@@ -541,14 +541,14 @@
the_log = normalize_log(sio.getvalue())
self.assertEqualDiff("""\
------------------------------------------------------------
-revno: 2
+revno: 2 [merge]
committer: Lorem Ipsum <test at example.com>
branch nick: parent
timestamp: Just now
message:
merge branch 1
------------------------------------------------------------
- revno: 1.1.2
+ revno: 1.1.2 [merge]
committer: Lorem Ipsum <test at example.com>
branch nick: child
timestamp: Just now
@@ -598,7 +598,7 @@
the_log = normalize_log(sio.getvalue())
self.assertEqualDiff("""\
------------------------------------------------------------
-revno: 2
+revno: 2 [merge]
committer: Lorem Ipsum <test at example.com>
branch nick: parent
timestamp: Just now
@@ -890,7 +890,7 @@
the_log = normalize_log(sio.getvalue())
self.assertEqualDiff("""\
------------------------------------------------------------
-revno: 2
+revno: 2 [merge]
committer: Lorem Ipsum <test at example.com>
branch nick: parent
timestamp: Just now
@@ -910,6 +910,8 @@
added:
f1
f2
+------------------------------------------------------------
+Use --levels 0 (or -n0) to see merged revisions.
""",
the_log)
More information about the bazaar-commits
mailing list