diff --git a/mercurial/localrepo.py b/mercurial/localrepo.py
index 6ae0c41e4b525d9b331db2c089cce660de01da61_bWVyY3VyaWFsL2xvY2FscmVwby5weQ==..298c9f346dde7300f99d3806d6b1631dd8d4f71f_bWVyY3VyaWFsL2xvY2FscmVwby5weQ== 100644
--- a/mercurial/localrepo.py
+++ b/mercurial/localrepo.py
@@ -1154,6 +1154,6 @@
             fparent1, fparent2 = fparent2, nullid
         elif fparent2 != nullid:
             # is one parent an ancestor of the other?
-            fparentancestor = flog.ancestor(fparent1, fparent2)
-            if fparentancestor == fparent1:
+            fparentancestors = flog.commonancestors(fparent1, fparent2)
+            if fparent1 in fparentancestors:
                 fparent1, fparent2 = fparent2, nullid
@@ -1159,5 +1159,5 @@
                 fparent1, fparent2 = fparent2, nullid
-            elif fparentancestor == fparent2:
+            elif fparent2 in fparentancestors:
                 fparent2 = nullid
 
         # is the file changed?