Rev 4217: Remove single_merge_revision stuff from log (Ian Clatworthy) in file:///home/pqm/archives/thelove/bzr/%2Btrunk/

Canonical.com Patch Queue Manager pqm at pqm.ubuntu.com
Tue Mar 31 00:29:37 BST 2009


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

------------------------------------------------------------
revno: 4217
revision-id: pqm at pqm.ubuntu.com-20090330232934-wy5ynne0u2qlb0bu
parent: pqm at pqm.ubuntu.com-20090330055028-lhmncpzf7ebkd2yc
parent: ian.clatworthy at canonical.com-20090330222349-bxzgtp74sbt8kdz0
committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
branch nick: +trunk
timestamp: Tue 2009-03-31 00:29:34 +0100
message:
  Remove single_merge_revision stuff from log (Ian Clatworthy)
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: 4216.1.1
    revision-id: ian.clatworthy at canonical.com-20090330222349-bxzgtp74sbt8kdz0
    parent: pqm at pqm.ubuntu.com-20090330055028-lhmncpzf7ebkd2yc
    parent: ian.clatworthy at canonical.com-20090330054729-du0ub0umhl19sqwf
    committer: Ian Clatworthy <ian.clatworthy at canonical.com>
    branch nick: ianc-integration
    timestamp: Tue 2009-03-31 08:23:49 +1000
    message:
      Remove single_merge_revision stuff from log (Ian Clatworthy)
    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: 4215.1.1
    revision-id: ian.clatworthy at canonical.com-20090330054729-du0ub0umhl19sqwf
    parent: pqm at pqm.ubuntu.com-20090330035915-432gps2egb1gh01p
    committer: Ian Clatworthy <ian.clatworthy at canonical.com>
    branch nick: log.ditch-single-rev-stuff
    timestamp: Mon 2009-03-30 15:47:29 +1000
    message:
      remove supports_single_merge_revision
    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
=== modified file 'bzrlib/log.py'
--- a/bzrlib/log.py	2009-03-30 03:09:30 +0000
+++ b/bzrlib/log.py	2009-03-30 05:47:29 +0000
@@ -279,7 +279,6 @@
         'diff_type': diff_type,
         # Add 'private' attributes for features that may be deprecated
         '_match_using_deltas': _match_using_deltas,
-        '_allow_single_merge_revision': True,
     }
 
 
@@ -348,9 +347,6 @@
             rqst['delta_type'] = None
         if not getattr(lf, 'supports_diff', False):
             rqst['diff_type'] = None
-        if not getattr(lf, 'supports_merge_revisions', False):
-            rqst['_allow_single_merge_revision'] = getattr(lf,
-                'supports_single_merge_revision', False)
 
         # Find and print the interesting revisions
         generator = self._generator_factory(self.branch, rqst)
@@ -454,7 +450,6 @@
                 rqst.get('limit') or self.start_rev_id or self.end_rev_id)
         view_revisions = _calc_view_revisions(self.branch, self.start_rev_id,
             self.end_rev_id, rqst.get('direction'), generate_merge_revisions,
-            rqst.get('_allow_single_merge_revision'),
             delayed_graph_generation=delayed_graph_generation)
 
         # Apply the other filters
@@ -469,8 +464,7 @@
         # filter_revisions_touching_file_id() requires them ...
         rqst = self.rqst
         view_revisions = _calc_view_revisions(self.branch, self.start_rev_id,
-            self.end_rev_id, rqst.get('direction'), True,
-            rqst.get('_allow_single_merge_revision'))
+            self.end_rev_id, rqst.get('direction'), True)
         if not isinstance(view_revisions, list):
             view_revisions = list(view_revisions)
         view_revisions = _filter_revisions_touching_file_id(self.branch,
@@ -481,8 +475,7 @@
 
 
 def _calc_view_revisions(branch, start_rev_id, end_rev_id, direction,
-    generate_merge_revisions, allow_single_merge_revision,
-    delayed_graph_generation=False):
+    generate_merge_revisions, delayed_graph_generation=False):
     """Calculate the revisions to view.
 
     :return: An iterator of (revision_id, dotted_revno, merge_depth) tuples OR
@@ -496,8 +489,7 @@
     generate_single_revision = (end_rev_id and start_rev_id == end_rev_id and
         (not generate_merge_revisions or not _has_merges(branch, end_rev_id)))
     if generate_single_revision:
-        return _generate_one_revision(branch, end_rev_id, br_rev_id, br_revno,
-            allow_single_merge_revision)
+        return _generate_one_revision(branch, end_rev_id, br_rev_id, br_revno)
 
     # If we only want to see linear revisions, we can iterate ...
     if not generate_merge_revisions:
@@ -508,20 +500,12 @@
             direction, delayed_graph_generation)
 
 
-def _generate_one_revision(branch, rev_id, br_rev_id, br_revno,
-    allow_single_merge_revision):
+def _generate_one_revision(branch, rev_id, br_rev_id, br_revno):
     if rev_id == br_rev_id:
         # It's the tip
         return [(br_rev_id, br_revno, 0)]
     else:
         revno = branch.revision_id_to_dotted_revno(rev_id)
-        if len(revno) > 1 and not allow_single_merge_revision:
-            # It's a merge revision and the log formatter is
-            # completely brain dead. This "feature" of allowing
-            # log formatters incapable of displaying dotted revnos
-            # ought to be deprecated IMNSHO. IGC 20091022
-            raise errors.BzrCommandError('Selected log formatter only'
-                ' supports mainline revisions.')
         revno_str = '.'.join(str(n) for n in revno)
         return [(rev_id, revno_str, 0)]
 
@@ -683,7 +667,7 @@
 
 
 def calculate_view_revisions(branch, start_revision, end_revision, direction,
-        specific_fileid, generate_merge_revisions, allow_single_merge_revision):
+        specific_fileid, generate_merge_revisions):
     """Calculate the revisions to view.
 
     :return: An iterator of (revision_id, dotted_revno, merge_depth) tuples OR
@@ -695,8 +679,7 @@
     start_rev_id, end_rev_id = _get_revision_limits(branch, start_revision,
         end_revision)
     view_revisions = list(_calc_view_revisions(branch, start_rev_id, end_rev_id,
-        direction, generate_merge_revisions or specific_fileid,
-        allow_single_merge_revision))
+        direction, generate_merge_revisions or specific_fileid))
     if specific_fileid:
         view_revisions = _filter_revisions_touching_file_id(branch,
             specific_fileid, view_revisions,
@@ -1284,18 +1267,13 @@
         one (2) should be used.
 
     - supports_merge_revisions must be True if this log formatter supports
-        merge revisions.  If not, and if supports_single_merge_revision is
-        also not True, then only mainline revisions will be passed to the
-        formatter.
+        merge revisions.  If not, then only mainline revisions will be passed
+        to the formatter.
 
     - preferred_levels is the number of levels this formatter defaults to.
         The default value is zero meaning display all levels.
         This value is only relevant if supports_merge_revisions is True.
 
-    - supports_single_merge_revision must be True if this log formatter
-        supports logging only a single merge revision.  This flag is
-        only relevant if supports_merge_revisions is not True.
-
     - supports_tags must be True if this log formatter supports tags.
         Otherwise the tags attribute may not be populated.
 

=== modified file 'bzrlib/tests/blackbox/test_log.py'
--- a/bzrlib/tests/blackbox/test_log.py	2009-03-30 03:09:30 +0000
+++ b/bzrlib/tests/blackbox/test_log.py	2009-03-30 05:47:29 +0000
@@ -495,20 +495,6 @@
   branch 1
 """)
 
-    def test_merges_nonsupporting_formatter(self):
-        # This "feature" of log formatters is madness. If a log
-        # formatter cannot display a dotted-revno, it ought to ignore it.
-        # Otherwise, a linear sequence is always expected to be handled now.
-        raise KnownFailure('log formatters must support linear sequences now')
-        self._prepare()
-        err_msg = 'Selected log formatter only supports mainline revisions.'
-        # The single revision case is tested in the core tests
-        # since all standard formatters support single merge revisions.
-        out,err = self.run_bzr('log --short -r1..1.1.2', retcode=3)
-        self.assertContainsRe(err, err_msg)
-        out,err = self.run_bzr('log --short -r1.1.1..1.1.2', retcode=3)
-        self.assertContainsRe(err, err_msg)
-
 
 def subst_dates(string):
     """Replace date strings with constant values."""

=== modified file 'bzrlib/tests/test_log.py'
--- a/bzrlib/tests/test_log.py	2009-03-30 03:09:30 +0000
+++ b/bzrlib/tests/test_log.py	2009-03-30 05:47:29 +0000
@@ -198,33 +198,6 @@
         self.assertEqual('add file1 and file2', logentry.rev.message)
         self.checkDelta(logentry.delta, added=['file1', 'file2'])
 
-    def test_merges_nonsupporting_formatter(self):
-        """Tests that show_log will raise if the formatter doesn't
-        support merge revisions."""
-        wt = self.make_branch_and_memory_tree('.')
-        wt.lock_write()
-        self.addCleanup(wt.unlock)
-        wt.add('')
-        wt.commit('rev-1', rev_id='rev-1',
-                  timestamp=1132586655, timezone=36000,
-                  committer='Joe Foo <joe at foo.com>')
-        wt.commit('rev-merged', rev_id='rev-2a',
-                  timestamp=1132586700, timezone=36000,
-                  committer='Joe Foo <joe at foo.com>')
-        wt.set_parent_ids(['rev-1', 'rev-2a'])
-        wt.branch.set_last_revision_info(1, 'rev-1')
-        wt.commit('rev-2', rev_id='rev-2b',
-                  timestamp=1132586800, timezone=36000,
-                  committer='Joe Foo <joe at foo.com>')
-        logfile = self.make_utf8_encoded_stringio()
-        formatter = log.ShortLogFormatter(to_file=logfile)
-        wtb = wt.branch
-        lf = LogCatcher()
-        revspec = revisionspec.RevisionSpec.from_string('1.1.1')
-        rev = revspec.in_history(wtb)
-        self.assertRaises(errors.BzrCommandError, log.show_log, wtb, lf,
-                          start_revision=rev, end_revision=rev)
-
 
 def make_commits_with_trailing_newlines(wt):
     """Helper method for LogFormatter tests"""
@@ -1344,7 +1317,6 @@
                 direction, # direction
                 file_id, # specific_fileid
                 True, # generate_merge_revisions
-                True, # allow_single_merge_revision
                 )
             return revs
 




More information about the bazaar-commits mailing list