[PATCH 2 of 2] filemerge: move :merge-local/other symlink check to precheck
Siddharth Agarwal
sid0 at fb.com
Mon Nov 9 01:48:45 CST 2015
# HG changeset patch
# User Siddharth Agarwal <sid0 at fb.com>
# Date 1447054964 28800
# Sun Nov 08 23:42:44 2015 -0800
# Node ID 4e65cd4b1a1d2cccb15e3e099432ddb4a4bd9786
# Parent 8c9da62bfea7439e5d811cd281f8d144f76f87e7
filemerge: move :merge-local/other symlink check to precheck
In upcoming patches we're going to add more checks to the function currently
named _symlinkcheck. This consolidates all those checks.
diff --git a/mercurial/filemerge.py b/mercurial/filemerge.py
--- a/mercurial/filemerge.py
+++ b/mercurial/filemerge.py
@@ -308,16 +308,12 @@ def _imergeauto(repo, mynode, orig, fcd,
"""
assert localorother is not None
tool, toolpath, binary, symlink = toolconf
- if symlink:
- repo.ui.warn(_('warning: :merge-%s cannot merge symlinks '
- 'for %s\n') % (localorother, fcd.path()))
- return False, 1
a, b, c, back = files
r = simplemerge.simplemerge(repo.ui, a, b, c, label=labels,
localorother=localorother)
return True, r
- at internaltool('merge-local', mergeonly)
+ at internaltool('merge-local', mergeonly, precheck=_symlinkcheck)
def _imergelocal(*args, **kwargs):
"""
Like :merge, but resolve all conflicts non-interactively in favor
@@ -325,7 +321,7 @@ def _imergelocal(*args, **kwargs):
success, status = _imergeauto(localorother='local', *args, **kwargs)
return success, status
- at internaltool('merge-other', mergeonly)
+ at internaltool('merge-other', mergeonly, precheck=_symlinkcheck)
def _imergeother(*args, **kwargs):
"""
Like :merge, but resolve all conflicts non-interactively in favor
diff --git a/tests/test-merge-types.t b/tests/test-merge-types.t
--- a/tests/test-merge-types.t
+++ b/tests/test-merge-types.t
@@ -118,7 +118,7 @@ Symlink is other parent, executable is l
picked tool ':merge-local' for a (binary False symlink True)
merging a
my a at 3574f3e69b1c+ other a at 521a1e40188f ancestor a at c334dc3be0da
- warning: :merge-local cannot merge symlinks for a
+ warning: internal :merge-local cannot merge symlinks for a
0 files updated, 0 files merged, 0 files removed, 1 files unresolved
use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon
[1]
@@ -140,7 +140,7 @@ Symlink is other parent, executable is l
picked tool ':merge-other' for a (binary False symlink True)
merging a
my a at 3574f3e69b1c+ other a at 521a1e40188f ancestor a at c334dc3be0da
- warning: :merge-other cannot merge symlinks for a
+ warning: internal :merge-other cannot merge symlinks for a
0 files updated, 0 files merged, 0 files removed, 1 files unresolved
use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon
[1]
More information about the Mercurial-devel
mailing list