Rev 4215: log mainline only by default (Ian Clatworthy) in file:///home/pqm/archives/thelove/bzr/%2Btrunk/

Canonical.com Patch Queue Manager pqm at pqm.ubuntu.com
Mon Mar 30 04:59:18 BST 2009


At file:///home/pqm/archives/thelove/bzr/%2Btrunk/

------------------------------------------------------------
revno: 4215
revision-id: pqm at pqm.ubuntu.com-20090330035915-432gps2egb1gh01p
parent: pqm at pqm.ubuntu.com-20090330004851-70utb2qlpnc4u9um
parent: ian.clatworthy at canonical.com-20090330030930-1dusbvvinsyk5zkr
committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
branch nick: +trunk
timestamp: Mon 2009-03-30 04:59:15 +0100
message:
  log mainline only by default (Ian Clatworthy)
modified:
  NEWS                           NEWS-20050323055033-4e00b5db738777ff
  bzrlib/builtins.py             builtins.py-20050830033751-fc01482b9ca23183
  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
  doc/en/user-guide/browsing_history.txt browsing_history.txt-20071121073725-0corxykv5irjal00-2
    ------------------------------------------------------------
    revno: 4214.1.1
    revision-id: ian.clatworthy at canonical.com-20090330030930-1dusbvvinsyk5zkr
    parent: pqm at pqm.ubuntu.com-20090330004851-70utb2qlpnc4u9um
    parent: ian.clatworthy at canonical.com-20090326125741-rog22bmdq6oxwfzr
    committer: Ian Clatworthy <ian.clatworthy at canonical.com>
    branch nick: ianc-integration
    timestamp: Mon 2009-03-30 13:09:30 +1000
    message:
      log mainline only by default (Ian Clatworthy)
    modified:
      NEWS                           NEWS-20050323055033-4e00b5db738777ff
      bzrlib/builtins.py             builtins.py-20050830033751-fc01482b9ca23183
      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
      doc/en/user-guide/browsing_history.txt browsing_history.txt-20071121073725-0corxykv5irjal00-2
    ------------------------------------------------------------
    revno: 4206.1.1
    revision-id: ian.clatworthy at canonical.com-20090326125741-rog22bmdq6oxwfzr
    parent: pqm at pqm.ubuntu.com-20090326063330-evutyvml3067dpsz
    committer: Ian Clatworthy <ian.clatworthy at canonical.com>
    branch nick: bzr.log-mainline-by-default
    timestamp: Thu 2009-03-26 22:57:41 +1000
    message:
      log mainline by default
    modified:
      NEWS                           NEWS-20050323055033-4e00b5db738777ff
      bzrlib/builtins.py             builtins.py-20050830033751-fc01482b9ca23183
      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
      doc/en/user-guide/browsing_history.txt browsing_history.txt-20071121073725-0corxykv5irjal00-2
=== modified file 'NEWS'
--- a/NEWS	2009-03-29 23:52:11 +0000
+++ b/NEWS	2009-03-30 03:09:30 +0000
@@ -16,6 +16,12 @@
   must now be explicitly added tree references.  At the commandline, use
   join --reference instead of add.  (Aaron Bentley)
 
+* The ``--long`` log format (the default) no longer shows merged
+  revisions implicitly, making it consistent with the ``short`` and
+  ``line`` log formats.  To see merged revisions for just a given
+  revision, use ``bzr log -n0 -rX``. To see every merged revision,
+  use ``bzr log -n0``.  (Ian Clatworthy)
+
 New Features
 ************
 

=== modified file 'bzrlib/builtins.py'
--- a/bzrlib/builtins.py	2009-03-28 14:24:46 +0000
+++ b/bzrlib/builtins.py	2009-03-30 03:09:30 +0000
@@ -1933,9 +1933,8 @@
         --show-ids  display revision-ids (and file-ids), not just revnos
 
       Note that the default number of levels to display is a function of the
-      log format. If the -n option is not used, ``short`` and ``line`` show
-      just the top level (mainline) while ``long`` shows all levels of merged
-      revisions.
+      log format. If the -n option is not used, the standard log formats show
+      just the top level (mainline).
 
       Status summaries are shown using status flags like A, M, etc. To see
       the changes explained using words like ``added`` and ``modified``
@@ -2027,21 +2026,16 @@
       You may find it useful to add the aliases below to ``bazaar.conf``::
 
         [ALIASES]
-        tip = log -r-1 -n1
+        tip = log -r-1
         top = log -l10 --line
-        show = log -v -p -n1 --long
+        show = log -v -p
 
       ``bzr tip`` will then show the latest revision while ``bzr top``
       will show the last 10 mainline revisions. To see the details of a
       particular revision X,  ``bzr show -rX``.
 
-      As many GUI tools and Web interfaces do, you may prefer viewing
-      history collapsed initially. If you are interested in looking deeper
-      into a particular merge X, use ``bzr log -n0 -rX``. If you like
-      working this way, you may wish to either:
-
-      * change your default log format to short (or line)
-      * add this alias: log = log -n1
+      If you are interested in looking deeper into a particular merge X,
+      use ``bzr log -n0 -rX``.
 
       ``bzr log -v`` on a branch with lots of history is currently
       very slow. A fix for this issue is currently under development.

=== modified file 'bzrlib/log.py'
--- a/bzrlib/log.py	2009-03-29 23:52:11 +0000
+++ b/bzrlib/log.py	2009-03-30 03:09:30 +0000
@@ -1402,6 +1402,7 @@
 class LongLogFormatter(LogFormatter):
 
     supports_merge_revisions = True
+    preferred_levels = 1
     supports_delta = True
     supports_tags = True
     supports_diff = True

=== modified file 'bzrlib/tests/blackbox/test_log.py'
--- a/bzrlib/tests/blackbox/test_log.py	2009-03-29 02:35:13 +0000
+++ b/bzrlib/tests/blackbox/test_log.py	2009-03-30 03:09:30 +0000
@@ -213,9 +213,9 @@
         os.chdir('branch2')
         self.run_bzr('merge ../branch1') # tags don't propagate otherwise
         branch2_tree.commit(message='merge branch 1')
-        log = self.run_bzr("log -r-1")[0]
+        log = self.run_bzr("log -n0 -r-1")[0]
         self.assertContainsRe(log, r'    tags: tag1')
-        log = self.run_bzr("log -r3.1.1")[0]
+        log = self.run_bzr("log -n0 -r3.1.1")[0]
         self.assertContainsRe(log, r'tags: tag1')
 
     def test_log_limit(self):
@@ -336,7 +336,7 @@
 
     def test_merges_are_indented_by_level(self):
         self._prepare()
-        out,err = self.run_bzr('log')
+        out,err = self.run_bzr('log -n0')
         self.assertEqual('', err)
         log = normalize_log(out)
         self.assertEqualDiff(log, """\
@@ -446,7 +446,7 @@
 
     def test_merges_single_merge_rev(self):
         self._prepare()
-        out,err = self.run_bzr('log -r1.1.2')
+        out,err = self.run_bzr('log -n0 -r1.1.2')
         self.assertEqual('', err)
         log = normalize_log(out)
         self.assertEqualDiff(log, """\
@@ -468,7 +468,7 @@
 
     def test_merges_partial_range(self):
         self._prepare()
-        out, err = self.run_bzr('log -r1.1.1..1.1.2')
+        out, err = self.run_bzr('log -n0 -r1.1.1..1.1.2')
         self.assertEqual('', err)
         log = normalize_log(out)
         self.assertEqualDiff(log, """\
@@ -537,9 +537,9 @@
             committer='Lorem Ipsum <test at example.com>')
         os.chdir('parent')
 
-    def test_log_show_diff_long(self):
+    def test_log_show_diff_long_with_merges(self):
         self._prepare()
-        out,err = self.run_bzr('log -p')
+        out,err = self.run_bzr('log -p -n0')
         self.assertEqual('', err)
         log = normalize_log(out)
         self.assertEqualDiff(subst_dates(log), """\
@@ -833,43 +833,43 @@
     def test_log_file(self):
         """The log for a particular file should only list revs for that file"""
         self.prepare_tree()
-        log = self.run_bzr('log file1')[0]
+        log = self.run_bzr('log -n0 file1')[0]
         self.assertContainsRe(log, 'revno: 1\n')
         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 ')
-        log = self.run_bzr('log file2')[0]
+        log = self.run_bzr('log -n0 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 ')
-        log = self.run_bzr('log file3')[0]
+        log = self.run_bzr('log -n0 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 ')
-        log = self.run_bzr('log -r3.1.1 file2')[0]
+        log = self.run_bzr('log -n0 -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 ')
-        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 ')
-        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 ')
-        log = self.run_bzr('log -r..3 file2')[0]
+        log = self.run_bzr('log -n0 -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 ')
+        log = self.run_bzr('log -n0 -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 ')
+        log = self.run_bzr('log -n0 -r..3 file2')[0]
         self.assertNotContainsRe(log, 'revno: 1\n')
         self.assertContainsRe(log, 'revno: 2\n')
         self.assertNotContainsRe(log, 'revno: 3\n')
@@ -888,7 +888,7 @@
         # Check logging a deleted file is ok if the file existed
         # at the end the revision range
         self.prepare_tree(complex=True)
-        log, err = self.run_bzr('log -r..4 file2')
+        log, err = self.run_bzr('log -n0 -r..4 file2')
         self.assertEquals('', err)
         self.assertNotContainsRe(log, 'revno: 1\n')
         self.assertContainsRe(log, 'revno: 2\n')

=== modified file 'bzrlib/tests/test_log.py'
--- a/bzrlib/tests/test_log.py	2009-03-29 02:35:13 +0000
+++ b/bzrlib/tests/test_log.py	2009-03-30 03:09:30 +0000
@@ -536,7 +536,7 @@
         wt.commit('merge branch 1')
         b = wt.branch
         sio = self.make_utf8_encoded_stringio()
-        lf = log.LongLogFormatter(to_file=sio)
+        lf = log.LongLogFormatter(to_file=sio, levels=0)
         log.show_log(b, lf, verbose=True)
         the_log = normalize_log(sio.getvalue())
         self.assertEqualDiff("""\
@@ -593,7 +593,7 @@
         wt.commit('merge branch 1')
         b = wt.branch
         sio = self.make_utf8_encoded_stringio()
-        lf = log.LongLogFormatter(to_file=sio)
+        lf = log.LongLogFormatter(to_file=sio, levels=0)
         log.show_log(b, lf, verbose=True)
         the_log = normalize_log(sio.getvalue())
         self.assertEqualDiff("""\

=== modified file 'doc/en/user-guide/browsing_history.txt'
--- a/doc/en/user-guide/browsing_history.txt	2008-07-16 00:25:44 +0000
+++ b/doc/en/user-guide/browsing_history.txt	2009-03-26 12:57:41 +0000
@@ -13,24 +13,34 @@
     % bzr log -r 1000..1100      # changes from 1000 to 1100
     % bzr log -r 1000            # The changes in only revision 1000
 
-Viewing the mainline
---------------------
+Viewing merged revisions
+------------------------
 
 As distributed VCS tools like Bazaar make merging much easier than
-it is in central VCS tools, the history of a branch may often show
+it is in central VCS tools, the history of a branch may often contain
 lines of development splitting off the mainline and merging back
 in at a later time. Technically, the relationship between the
 numerous revision nodes is known as a Directed Acyclic Graph or
 DAG for short.
 
-In many cases though, you may only be interested in seeing the *mainline*
-for a branch, namely the primary line of development within the DAG.
-To do this, use the following command::
-
-  bzr log --short
-
-If you do this commonly, you may even wish to create an alias for it
-as explained in `Using aliases`_.
+In many cases, you typically want to see the mainline first and drill
+down from there. The default behaviour of log is therefore to show
+the mainline and indicate which revisions have nested merged revisions.
+To explore the merged revisions for revision X, use the following command::
+
+  bzr log -n0 -rX
+
+To see all revisions and all their merged revisions::
+
+  bzr log -n0
+
+Note that the -n option is used to indicate the number of levels to display
+where 0 means all. If that is too noisy, you can easily adjust the number
+to only view down so far. For example, if your project is structured with
+a top level gatekeeper merging changes from team gatekeepers, ``bzr log``
+shows what the top level gatekeeper did while ``bzr log -n2`` shows what
+the team gatekeepers did. In the vast majority of cases though, ``-n0``
+is fine.
 
 Tuning the output
 -----------------




More information about the bazaar-commits mailing list