diff mercurial/filemerge.py @ 26516:eb9876aa8770

filemerge: use symlinkcheck for :merge and :union This exposes a couple of bugs, both of which will be fixed in upcoming patches.
author Siddharth Agarwal <sid0@fb.com>
date Tue, 06 Oct 2015 22:57:21 -0700
parents 0ffa7fe1076b
children d8463a743d7d
line wrap: on
line diff
--- a/mercurial/filemerge.py	Tue Oct 06 22:56:33 2015 -0700
+++ b/mercurial/filemerge.py	Tue Oct 06 22:57:21 2015 -0700
@@ -242,11 +242,6 @@
     files. It will fail if there are any conflicts and leave markers in
     the partially merged file. Markers will have two sections, one for each side
     of merge, unless mode equals 'union' which suppresses the markers."""
-    tool, toolpath, binary, symlink = toolconf
-    if symlink:
-        repo.ui.warn(_('warning: internal :merge cannot merge symlinks '
-                       'for %s\n') % fcd.path())
-        return False, 1
     r = _premerge(repo, toolconf, files, labels=labels)
     if r:
         a, b, c, back = files
@@ -259,7 +254,8 @@
 
 @internaltool('union', True,
               _("merging %s incomplete! "
-                "(edit conflicts, then use 'hg resolve --mark')\n"))
+                "(edit conflicts, then use 'hg resolve --mark')\n"),
+              precheck=_symlinkcheck)
 def _iunion(repo, mynode, orig, fcd, fco, fca, toolconf, files, labels=None):
     """
     Uses the internal non-interactive simple merge algorithm for merging
@@ -270,7 +266,8 @@
 
 @internaltool('merge', True,
               _("merging %s incomplete! "
-                "(edit conflicts, then use 'hg resolve --mark')\n"))
+                "(edit conflicts, then use 'hg resolve --mark')\n"),
+              precheck=_symlinkcheck)
 def _imerge(repo, mynode, orig, fcd, fco, fca, toolconf, files, labels=None):
     """
     Uses the internal non-interactive simple merge algorithm for merging