[PATCH 2 of 7 mergedriver] filemerge: add support for change/delete conflicts to the ':other' merge tool
Siddharth Agarwal
sid0 at fb.com
Thu Nov 19 21:33:54 UTC 2015
# HG changeset patch
# User Siddharth Agarwal <sid0 at fb.com>
# Date 1447890110 28800
# Wed Nov 18 15:41:50 2015 -0800
# Node ID fcf43805474acb08028332307e63559a3d5a0afb
# Parent 1b30c58e408645fd4a25e0d66d986523208d5302
# Available At http://42.netv6.net/sid0-wip/hg/
# hg pull http://42.netv6.net/sid0-wip/hg/ -r fcf43805474a
filemerge: add support for change/delete conflicts to the ':other' merge tool
This, along with the previous patch to the :local merge tool, covers the full
matrix of change/delete conflicts.
diff --git a/mercurial/filemerge.py b/mercurial/filemerge.py
--- a/mercurial/filemerge.py
+++ b/mercurial/filemerge.py
@@ -242,8 +242,14 @@ def _ilocal(repo, mynode, orig, fcd, fco
@internaltool('other', nomerge)
def _iother(repo, mynode, orig, fcd, fco, fca, toolconf):
"""Uses the other version of files as the merged version."""
- repo.wwrite(fcd.path(), fco.data(), fco.flags())
- return 0, False
+ if fco.isabsent():
+ # local changed, remote deleted -- 'deleted' picked
+ repo.wvfs.unlinkpath(fcd.path())
+ deleted = True
+ else:
+ repo.wwrite(fcd.path(), fco.data(), fco.flags())
+ deleted = False
+ return 0, deleted
@internaltool('fail', nomerge)
def _ifail(repo, mynode, orig, fcd, fco, fca, toolconf):
More information about the Mercurial-devel
mailing list