[PATCH 6 of 9 cah] localrepo: use commonancestorsheads for checking linear heritage in file commit

Mads Kiilerich mads at kiilerich.com
Thu Apr 17 18:07:58 UTC 2014


# HG changeset patch
# User Mads Kiilerich <madski at unity3d.com>
# Date 1397757699 -7200
#      Thu Apr 17 20:01:39 2014 +0200
# Node ID 53433d8f1faa14193e5d6eb2f669f85072065cd1
# Parent  12312f066d93dcfa2e50e8c9a9f05989ebbbc719
localrepo: use commonancestorsheads for checking linear heritage in file commit

If two revisions are linearly related, there will only be one ancestor, and
commonancestors and commonancestorsheads would give the same result.
commonancestorsheads is however slightly simpler, faster and more correct.

diff --git a/mercurial/localrepo.py b/mercurial/localrepo.py
--- a/mercurial/localrepo.py
+++ b/mercurial/localrepo.py
@@ -1168,7 +1168,7 @@ class localrepository(object):
             fparent1, fparent2 = fparent2, nullid
         elif fparent2 != nullid:
             # is one parent an ancestor of the other?
-            fparentancestors = flog.commonancestors(fparent1, fparent2)
+            fparentancestors = flog.commonancestorsheads(fparent1, fparent2)
             if fparent1 in fparentancestors:
                 fparent1, fparent2 = fparent2, nullid
             elif fparent2 in fparentancestors:



More information about the Mercurial-devel mailing list