diff mercurial/merge.py @ 5390:36c46e20976a

merge: provide *_ISLINK environment vars to merge helper Sets HG_MY_ISLINK, HG_OTHER_ISLINK, HG_BASE_ISLINK in environment. Without these variables, it's impossible for the merge application to know whether the 'other' and 'base' files were symlinks in their original contexts. For the purposes of the merge they are always emitted as small text files.
author Patrick Mezard <pmezard@gmail.com>
date Wed, 03 Oct 2007 23:09:36 +0200
parents 17ed9b9a0d03
children 77cafe8f89e0
line wrap: on
line diff
--- a/mercurial/merge.py
+++ b/mercurial/merge.py
@@ -53,7 +53,10 @@ def filemerge(repo, fw, fd, fo, wctx, mc
     r = util.system('%s "%s" "%s" "%s"' % (cmd, a, b, c), cwd=repo.root,
                     environ={'HG_FILE': fd,
                              'HG_MY_NODE': str(wctx.parents()[0]),
-                             'HG_OTHER_NODE': str(mctx)})
+                             'HG_OTHER_NODE': str(mctx),
+                             'HG_MY_ISLINK': fcm.islink(),
+                             'HG_OTHER_ISLINK': fco.islink(),
+                             'HG_BASE_ISLINK': fca.islink(),})
     if r:
         repo.ui.warn(_("merging %s failed!\n") % fd)