merge: use None as filename for base in 'both created' conflicts
authorMartin von Zweigbergk <martinvonz@google.com>
Mon, 24 Nov 2014 16:17:02 -0800
changeset 23398 9da5a7413eb8
parent 23397 c7c95838be9a
child 23399 fd5247a88e63
merge: use None as filename for base in 'both created' conflicts Instead of using a file that we know is not in the common ancestor's maniffest, let's use None. This is safe as the only place that cares about the value (applyupdates) already checks if the item exists in the ancestor.
mercurial/merge.py
--- a/mercurial/merge.py	Mon Nov 24 16:42:36 2014 -0800
+++ b/mercurial/merge.py	Mon Nov 24 16:17:02 2014 -0800
@@ -421,9 +421,7 @@
                     actions['m'].append((f, (f, f, fa, False, pa.node()),
                                    "both renamed from " + fa))
                 else:
-                    # Note: f as ancestor is wrong - we can't really make a
-                    # 3-way merge without an ancestor file.
-                    actions['m'].append((f, (f, f, f, False, pa.node()),
+                    actions['m'].append((f, (f, f, None, False, pa.node()),
                                    "both created"))
             else:
                 a = ma[f]
@@ -493,8 +491,7 @@
             else:
                 different = _checkunknownfile(repo, wctx, p2, f)
                 if force and branchmerge and different:
-                    # FIXME: This is wrong - f is not in ma ...
-                    actions['m'].append((f, (f, f, f, False, pa.node()),
+                    actions['m'].append((f, (f, f, None, False, pa.node()),
                                     "remote differs from untracked local"))
                 elif not force and different:
                     aborts.append((f, 'ud'))