Rev 6029: Delete the deprecated log._filter_revision_range and log.get_view_revisions and the associated tests, checking that covergae is not reduced with --coverage. in file:///home/vila/src/bzr/cleanup/deprecations/

Vincent Ladeuil v.ladeuil+lp at free.fr
Fri Jul 15 13:49:47 UTC 2011


At file:///home/vila/src/bzr/cleanup/deprecations/

------------------------------------------------------------
revno: 6029
revision-id: v.ladeuil+lp at free.fr-20110715134947-sce0z5tsz6d8kuxf
parent: v.ladeuil+lp at free.fr-20110715092425-3pv2oz6fw47ttfz3
committer: Vincent Ladeuil <v.ladeuil+lp at free.fr>
branch nick: deprecations
timestamp: Fri 2011-07-15 15:49:47 +0200
message:
  Delete the deprecated log._filter_revision_range and log.get_view_revisions and the associated tests, checking that covergae is not reduced with --coverage.
-------------- next part --------------
=== modified file 'bzrlib/log.py'
--- a/bzrlib/log.py	2011-07-15 09:24:25 +0000
+++ b/bzrlib/log.py	2011-07-15 13:49:47 +0000
@@ -1162,50 +1162,6 @@
     return mainline_revs, rev_nos, start_rev_id, end_rev_id
 
 
- at deprecated_function(deprecated_in((2, 2, 0)))
-def _filter_revision_range(view_revisions, start_rev_id, end_rev_id):
-    """Filter view_revisions based on revision ranges.
-
-    :param view_revisions: A list of (revision_id, dotted_revno, merge_depth)
-            tuples to be filtered.
-
-    :param start_rev_id: If not NONE specifies the first revision to be logged.
-            If NONE then all revisions up to the end_rev_id are logged.
-
-    :param end_rev_id: If not NONE specifies the last revision to be logged.
-            If NONE then all revisions up to the end of the log are logged.
-
-    :return: The filtered view_revisions.
-    """
-    if start_rev_id or end_rev_id:
-        revision_ids = [r for r, n, d in view_revisions]
-        if start_rev_id:
-            start_index = revision_ids.index(start_rev_id)
-        else:
-            start_index = 0
-        if start_rev_id == end_rev_id:
-            end_index = start_index
-        else:
-            if end_rev_id:
-                end_index = revision_ids.index(end_rev_id)
-            else:
-                end_index = len(view_revisions) - 1
-        # To include the revisions merged into the last revision,
-        # extend end_rev_id down to, but not including, the next rev
-        # with the same or lesser merge_depth
-        end_merge_depth = view_revisions[end_index][2]
-        try:
-            for index in xrange(end_index+1, len(view_revisions)+1):
-                if view_revisions[index][2] <= end_merge_depth:
-                    end_index = index - 1
-                    break
-        except IndexError:
-            # if the search falls off the end then log to the end as well
-            end_index = len(view_revisions) - 1
-        view_revisions = view_revisions[start_index:end_index+1]
-    return view_revisions
-
-
 def _filter_revisions_touching_file_id(branch, file_id, view_revisions,
     include_merges=True):
     r"""Return the list of revision ids which touch a given file id.
@@ -1290,47 +1246,6 @@
     return result
 
 
- at deprecated_function(deprecated_in((2, 2, 0)))
-def get_view_revisions(mainline_revs, rev_nos, branch, direction,
-                       include_merges=True):
-    """Produce an iterator of revisions to show
-    :return: an iterator of (revision_id, revno, merge_depth)
-    (if there is no revno for a revision, None is supplied)
-    """
-    if not include_merges:
-        revision_ids = mainline_revs[1:]
-        if direction == 'reverse':
-            revision_ids.reverse()
-        for revision_id in revision_ids:
-            yield revision_id, str(rev_nos[revision_id]), 0
-        return
-    graph = branch.repository.get_graph()
-    # This asks for all mainline revisions, which means we only have to spider
-    # sideways, rather than depth history. That said, its still size-of-history
-    # and should be addressed.
-    # mainline_revisions always includes an extra revision at the beginning, so
-    # don't request it.
-    parent_map = dict(((key, value) for key, value in
-        graph.iter_ancestry(mainline_revs[1:]) if value is not None))
-    # filter out ghosts; merge_sort errors on ghosts.
-    rev_graph = _mod_repository._strip_NULL_ghosts(parent_map)
-    merge_sorted_revisions = tsort.merge_sort(
-        rev_graph,
-        mainline_revs[-1],
-        mainline_revs,
-        generate_revno=True)
-
-    if direction == 'forward':
-        # forward means oldest first.
-        merge_sorted_revisions = reverse_by_depth(merge_sorted_revisions)
-    elif direction != 'reverse':
-        raise ValueError('invalid direction %r' % direction)
-
-    for (sequence, rev_id, merge_depth, revno, end_of_merge
-         ) in merge_sorted_revisions:
-        yield rev_id, '.'.join(map(str, revno)), merge_depth
-
-
 def reverse_by_depth(merge_sorted_revisions, _depth=0):
     """Reverse revisions by depth.
 

=== modified file 'bzrlib/tests/test_log.py'
--- a/bzrlib/tests/test_log.py	2011-07-15 09:24:25 +0000
+++ b/bzrlib/tests/test_log.py	2011-07-15 13:49:47 +0000
@@ -983,317 +983,6 @@
             wt.branch, log.GnuChangelogLogFormatter,
             show_log_kwargs=dict(verbose=True))
 
-class TestGetViewRevisions(tests.TestCaseWithTransport, TestLogMixin):
-
-    def _get_view_revisions(self, *args, **kwargs):
-        return self.applyDeprecated(symbol_versioning.deprecated_in((2, 2, 0)),
-                                    log.get_view_revisions, *args, **kwargs)
-
-    def make_tree_with_commits(self):
-        """Create a tree with well-known revision ids"""
-        wt = self.make_branch_and_tree('tree1')
-        self.wt_commit(wt, 'commit one', rev_id='1')
-        self.wt_commit(wt, 'commit two', rev_id='2')
-        self.wt_commit(wt, 'commit three', rev_id='3')
-        mainline_revs = [None, '1', '2', '3']
-        rev_nos = {'1': 1, '2': 2, '3': 3}
-        return mainline_revs, rev_nos, wt
-
-    def make_tree_with_merges(self):
-        """Create a tree with well-known revision ids and a merge"""
-        mainline_revs, rev_nos, wt = self.make_tree_with_commits()
-        tree2 = wt.bzrdir.sprout('tree2').open_workingtree()
-        self.wt_commit(tree2, 'four-a', rev_id='4a')
-        wt.merge_from_branch(tree2.branch)
-        self.wt_commit(wt, 'four-b', rev_id='4b')
-        mainline_revs.append('4b')
-        rev_nos['4b'] = 4
-        # 4a: 3.1.1
-        return mainline_revs, rev_nos, wt
-
-    def make_branch_with_many_merges(self):
-        """Create a tree with well-known revision ids"""
-        builder = self.make_branch_builder('tree1')
-        builder.start_series()
-        builder.build_snapshot('1', None, [
-            ('add', ('', 'TREE_ROOT', 'directory', '')),
-            ('add', ('f', 'f-id', 'file', '1\n'))])
-        builder.build_snapshot('2', ['1'], [])
-        builder.build_snapshot('3a', ['2'], [
-            ('modify', ('f-id', '1\n2\n3a\n'))])
-        builder.build_snapshot('3b', ['2', '3a'], [
-            ('modify', ('f-id', '1\n2\n3a\n'))])
-        builder.build_snapshot('3c', ['2', '3b'], [
-            ('modify', ('f-id', '1\n2\n3a\n'))])
-        builder.build_snapshot('4a', ['3b'], [])
-        builder.build_snapshot('4b', ['3c', '4a'], [])
-        builder.finish_series()
-
-        # 1
-        # |
-        # 2-.
-        # |\ \
-        # | | 3a
-        # | |/
-        # | 3b
-        # |/|
-        # 3c4a
-        # |/
-        # 4b
-
-        mainline_revs = [None, '1', '2', '3c', '4b']
-        rev_nos = {'1':1, '2':2, '3c': 3, '4b':4}
-        full_rev_nos_for_reference = {
-            '1': '1',
-            '2': '2',
-            '3a': '2.1.1', #first commit tree 3
-            '3b': '2.2.1', # first commit tree 2
-            '3c': '3', #merges 3b to main
-            '4a': '2.2.2', # second commit tree 2
-            '4b': '4', # merges 4a to main
-            }
-        return mainline_revs, rev_nos, builder.get_branch()
-
-    def test_get_view_revisions_forward(self):
-        """Test the get_view_revisions method"""
-        mainline_revs, rev_nos, wt = self.make_tree_with_commits()
-        wt.lock_read()
-        self.addCleanup(wt.unlock)
-        revisions = list(self._get_view_revisions(
-                mainline_revs, rev_nos, wt.branch, 'forward'))
-        self.assertEqual([('1', '1', 0), ('2', '2', 0), ('3', '3', 0)],
-                         revisions)
-        revisions2 = list(self._get_view_revisions(
-                mainline_revs, rev_nos, wt.branch, 'forward',
-                include_merges=False))
-        self.assertEqual(revisions, revisions2)
-
-    def test_get_view_revisions_reverse(self):
-        """Test the get_view_revisions with reverse"""
-        mainline_revs, rev_nos, wt = self.make_tree_with_commits()
-        wt.lock_read()
-        self.addCleanup(wt.unlock)
-        revisions = list(self._get_view_revisions(
-                mainline_revs, rev_nos, wt.branch, 'reverse'))
-        self.assertEqual([('3', '3', 0), ('2', '2', 0), ('1', '1', 0), ],
-                         revisions)
-        revisions2 = list(self._get_view_revisions(
-                mainline_revs, rev_nos, wt.branch, 'reverse',
-                include_merges=False))
-        self.assertEqual(revisions, revisions2)
-
-    def test_get_view_revisions_merge(self):
-        """Test get_view_revisions when there are merges"""
-        mainline_revs, rev_nos, wt = self.make_tree_with_merges()
-        wt.lock_read()
-        self.addCleanup(wt.unlock)
-        revisions = list(self._get_view_revisions(
-                mainline_revs, rev_nos, wt.branch, 'forward'))
-        self.assertEqual([('1', '1', 0), ('2', '2', 0), ('3', '3', 0),
-                          ('4b', '4', 0), ('4a', '3.1.1', 1)],
-                         revisions)
-        revisions = list(self._get_view_revisions(
-                mainline_revs, rev_nos, wt.branch, 'forward',
-                include_merges=False))
-        self.assertEqual([('1', '1', 0), ('2', '2', 0), ('3', '3', 0),
-                          ('4b', '4', 0)],
-                         revisions)
-
-    def test_get_view_revisions_merge_reverse(self):
-        """Test get_view_revisions in reverse when there are merges"""
-        mainline_revs, rev_nos, wt = self.make_tree_with_merges()
-        wt.lock_read()
-        self.addCleanup(wt.unlock)
-        revisions = list(self._get_view_revisions(
-                mainline_revs, rev_nos, wt.branch, 'reverse'))
-        self.assertEqual([('4b', '4', 0), ('4a', '3.1.1', 1),
-                          ('3', '3', 0), ('2', '2', 0), ('1', '1', 0)],
-                         revisions)
-        revisions = list(self._get_view_revisions(
-                mainline_revs, rev_nos, wt.branch, 'reverse',
-                include_merges=False))
-        self.assertEqual([('4b', '4', 0), ('3', '3', 0), ('2', '2', 0),
-                          ('1', '1', 0)],
-                         revisions)
-
-    def test_get_view_revisions_merge2(self):
-        """Test get_view_revisions when there are merges"""
-        mainline_revs, rev_nos, b = self.make_branch_with_many_merges()
-        b.lock_read()
-        self.addCleanup(b.unlock)
-        revisions = list(self._get_view_revisions(
-                mainline_revs, rev_nos, b, 'forward'))
-        expected = [('1', '1', 0), ('2', '2', 0), ('3c', '3', 0),
-                    ('3b', '2.2.1', 1), ('3a', '2.1.1', 2), ('4b', '4', 0),
-                    ('4a', '2.2.2', 1)]
-        self.assertEqual(expected, revisions)
-        revisions = list(self._get_view_revisions(
-                mainline_revs, rev_nos, b, 'forward',
-                include_merges=False))
-        self.assertEqual([('1', '1', 0), ('2', '2', 0), ('3c', '3', 0),
-                          ('4b', '4', 0)],
-                         revisions)
-
-
-class TestGetRevisionsTouchingFileID(tests.TestCaseWithTransport):
-
-    def get_view_revisions(self, *args):
-        return self.applyDeprecated(symbol_versioning.deprecated_in((2, 2, 0)),
-                                    log.get_view_revisions, *args)
-
-    def create_tree_with_single_merge(self):
-        """Create a branch with a moderate layout.
-
-        The revision graph looks like:
-
-           A
-           |\
-           B C
-           |/
-           D
-
-        In this graph, A introduced files f1 and f2 and f3.
-        B modifies f1 and f3, and C modifies f2 and f3.
-        D merges the changes from B and C and resolves the conflict for f3.
-        """
-        # TODO: jam 20070218 This seems like it could really be done
-        #       with make_branch_and_memory_tree() if we could just
-        #       create the content of those files.
-        # TODO: jam 20070218 Another alternative is that we would really
-        #       like to only create this tree 1 time for all tests that
-        #       use it. Since 'log' only uses the tree in a readonly
-        #       fashion, it seems a shame to regenerate an identical
-        #       tree for each test.
-        # TODO: vila 20100122 One way to address the shame above will be to
-        #       create a memory tree during test parametrization and give a
-        #       *copy* of this tree to each test. Copying a memory tree ought
-        #       to be cheap, at least cheaper than creating them with such
-        #       complex setups.
-        tree = self.make_branch_and_tree('tree')
-        tree.lock_write()
-        self.addCleanup(tree.unlock)
-
-        self.build_tree_contents([('tree/f1', 'A\n'),
-                                  ('tree/f2', 'A\n'),
-                                  ('tree/f3', 'A\n'),
-                                 ])
-        tree.add(['f1', 'f2', 'f3'], ['f1-id', 'f2-id', 'f3-id'])
-        tree.commit('A', rev_id='A')
-
-        self.build_tree_contents([('tree/f2', 'A\nC\n'),
-                                  ('tree/f3', 'A\nC\n'),
-                                 ])
-        tree.commit('C', rev_id='C')
-        # Revert back to A to build the other history.
-        tree.set_last_revision('A')
-        tree.branch.set_last_revision_info(1, 'A')
-        self.build_tree_contents([('tree/f1', 'A\nB\n'),
-                                  ('tree/f2', 'A\n'),
-                                  ('tree/f3', 'A\nB\n'),
-                                 ])
-        tree.commit('B', rev_id='B')
-        tree.set_parent_ids(['B', 'C'])
-        self.build_tree_contents([('tree/f1', 'A\nB\n'),
-                                  ('tree/f2', 'A\nC\n'),
-                                  ('tree/f3', 'A\nB\nC\n'),
-                                 ])
-        tree.commit('D', rev_id='D')
-
-        # Switch to a read lock for this tree.
-        # We still have an addCleanup(tree.unlock) pending
-        tree.unlock()
-        tree.lock_read()
-        return tree
-
-    def check_delta(self, delta, **kw):
-        """Check the filenames touched by a delta are as expected.
-
-        Caller only have to pass in the list of files for each part, all
-        unspecified parts are considered empty (and checked as such).
-        """
-        for n in 'added', 'removed', 'renamed', 'modified', 'unchanged':
-            # By default we expect an empty list
-            expected = kw.get(n, [])
-            # strip out only the path components
-            got = [x[0] for x in getattr(delta, n)]
-            self.assertEqual(expected, got)
-
-    def test_tree_with_single_merge(self):
-        """Make sure the tree layout is correct."""
-        tree = self.create_tree_with_single_merge()
-        rev_A_tree = tree.branch.repository.revision_tree('A')
-        rev_B_tree = tree.branch.repository.revision_tree('B')
-        rev_C_tree = tree.branch.repository.revision_tree('C')
-        rev_D_tree = tree.branch.repository.revision_tree('D')
-
-        self.check_delta(rev_B_tree.changes_from(rev_A_tree),
-                         modified=['f1', 'f3'])
-
-        self.check_delta(rev_C_tree.changes_from(rev_A_tree),
-                         modified=['f2', 'f3'])
-
-        self.check_delta(rev_D_tree.changes_from(rev_B_tree),
-                         modified=['f2', 'f3'])
-
-        self.check_delta(rev_D_tree.changes_from(rev_C_tree),
-                         modified=['f1', 'f3'])
-
-    def assertAllRevisionsForFileID(self, tree, file_id, revisions):
-        """Ensure _filter_revisions_touching_file_id returns the right values.
-
-        Get the return value from _filter_revisions_touching_file_id and make
-        sure they are correct.
-        """
-        # The api for _filter_revisions_touching_file_id is a little crazy.
-        # So we do the setup here.
-        mainline = tree.branch.revision_history()
-        mainline.insert(0, None)
-        revnos = dict((rev, idx+1) for idx, rev in enumerate(mainline))
-        view_revs_iter = self.get_view_revisions(
-            mainline, revnos, tree.branch, 'reverse', True)
-        actual_revs = log._filter_revisions_touching_file_id(
-            tree.branch, file_id, list(view_revs_iter))
-        self.assertEqual(revisions, [r for r, revno, depth in actual_revs])
-
-    def test_file_id_f1(self):
-        tree = self.create_tree_with_single_merge()
-        # f1 should be marked as modified by revisions A and B
-        self.assertAllRevisionsForFileID(tree, 'f1-id', ['B', 'A'])
-
-    def test_file_id_f2(self):
-        tree = self.create_tree_with_single_merge()
-        # f2 should be marked as modified by revisions A, C, and D
-        # because D merged the changes from C.
-        self.assertAllRevisionsForFileID(tree, 'f2-id', ['D', 'C', 'A'])
-
-    def test_file_id_f3(self):
-        tree = self.create_tree_with_single_merge()
-        # f3 should be marked as modified by revisions A, B, C, and D
-        self.assertAllRevisionsForFileID(tree, 'f3-id', ['D', 'C', 'B', 'A'])
-
-    def test_file_id_with_ghosts(self):
-        # This is testing bug #209948, where having a ghost would cause
-        # _filter_revisions_touching_file_id() to fail.
-        tree = self.create_tree_with_single_merge()
-        # We need to add a revision, so switch back to a write-locked tree
-        # (still a single addCleanup(tree.unlock) pending).
-        tree.unlock()
-        tree.lock_write()
-        first_parent = tree.last_revision()
-        tree.set_parent_ids([first_parent, 'ghost-revision-id'])
-        self.build_tree_contents([('tree/f1', 'A\nB\nXX\n')])
-        tree.commit('commit with a ghost', rev_id='XX')
-        self.assertAllRevisionsForFileID(tree, 'f1-id', ['XX', 'B', 'A'])
-        self.assertAllRevisionsForFileID(tree, 'f2-id', ['D', 'C', 'A'])
-
-    def test_unknown_file_id(self):
-        tree = self.create_tree_with_single_merge()
-        self.assertAllRevisionsForFileID(tree, 'unknown', [])
-
-    def test_empty_branch_unknown_file_id(self):
-        tree = self.make_branch_and_tree('tree')
-        self.assertAllRevisionsForFileID(tree, 'unknown', [])
-
 
 class TestShowChangedRevisions(tests.TestCaseWithTransport):
 



More information about the bazaar-commits mailing list