Rev 3056: bzrlib.revision.is_ancestor should use graph functions (#172970) in file:///home/pqm/archives/thelove/bzr/%2Btrunk/

Canonical.com Patch Queue Manager pqm at pqm.ubuntu.com
Fri Nov 30 07:01:00 GMT 2007


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

------------------------------------------------------------
revno: 3056
revision-id:pqm at pqm.ubuntu.com-20071130070051-vl4e257ac6vxgo72
parent: pqm at pqm.ubuntu.com-20071130054320-b4oer0rcbiy2ouzg
parent: mbp at sourcefrog.net-20071130060717-fpc1vz120ly8hinb
committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
branch nick: +trunk
timestamp: Fri 2007-11-30 07:00:51 +0000
message:
  bzrlib.revision.is_ancestor should use graph functions (#172970)
modified:
  bzrlib/revision.py             revision.py-20050309040759-e77802c08f3999d5
  bzrlib/tests/test_ancestry.py  test_ancestry.py-20050913023709-69768e94848312c6
    ------------------------------------------------------------
    revno: 3054.2.1
    revision-id:mbp at sourcefrog.net-20071130060717-fpc1vz120ly8hinb
    parent: pqm at pqm.ubuntu.com-20071130043114-bez1f7e4y16cp7rm
    parent: john at arbash-meinel.com-20071130033433-0j25tjs5jv2yyn40
    committer: Martin Pool <mbp at sourcefrog.net>
    branch nick: ancestry-hacks
    timestamp: Fri 2007-11-30 17:07:17 +1100
    message:
      bzrlib.revision.is_ancestor should use graph functions (#172970)
    modified:
      bzrlib/revision.py             revision.py-20050309040759-e77802c08f3999d5
      bzrlib/tests/test_ancestry.py  test_ancestry.py-20050913023709-69768e94848312c6
    ------------------------------------------------------------
    revno: 3052.1.1
    revision-id:john at arbash-meinel.com-20071130033433-0j25tjs5jv2yyn40
    parent: pqm at pqm.ubuntu.com-20071129184101-u9506rihe4zbzyyz
    committer: John Arbash Meinel <john at arbash-meinel.com>
    branch nick: is_ancestor_fix
    timestamp: Thu 2007-11-29 21:34:33 -0600
    message:
      (bug #172970) Switch revision.is_ancestor to use a graph search
      rather than grabing the ancestry and doing a membership test.
    modified:
      bzrlib/revision.py             revision.py-20050309040759-e77802c08f3999d5
=== modified file 'bzrlib/revision.py'
--- a/bzrlib/revision.py	2007-11-21 15:10:44 +0000
+++ b/bzrlib/revision.py	2007-11-30 03:34:33 +0000
@@ -136,8 +136,7 @@
     """
     if is_null(candidate_id):
         return True
-    return (candidate_id in branch.repository.get_ancestry(revision_id,
-            topo_sorted=False))
+    return branch.repository.get_graph().is_ancestor(candidate_id, revision_id)
 
 
 def iter_ancestors(revision_id, revision_source, only_present=False):

=== modified file 'bzrlib/tests/test_ancestry.py'
--- a/bzrlib/tests/test_ancestry.py	2007-07-11 16:42:37 +0000
+++ b/bzrlib/tests/test_ancestry.py	2007-11-30 06:07:17 +0000
@@ -50,9 +50,11 @@
         builder = BranchBuilder(self.get_transport())
         rev_id = builder.build_commit()
         branch = builder.get_branch()
+        branch.lock_read()
         self.assertTrue(is_ancestor('null:', 'null:', branch))
         self.assertTrue(is_ancestor(rev_id, 'null:',  branch))
         self.assertFalse(is_ancestor('null:', rev_id, branch))
+        branch.unlock()
 
 
 # TODO: check that ancestry is updated to include indirectly merged revisions




More information about the bazaar-commits mailing list