merge: avoid unlinking destination of merge when case changes (issue2715) stable
authorMatt Mackall <mpm@selenic.com>
Tue, 22 Mar 2011 12:00:38 -0500
branchstable
changeset 13718 5b3383ea67d2
parent 13717 bc41d08a5ccc
child 13725 6783f47d90dd
merge: avoid unlinking destination of merge when case changes (issue2715)
mercurial/merge.py
--- a/mercurial/merge.py	Tue Mar 22 11:59:43 2011 -0500
+++ b/mercurial/merge.py	Tue Mar 22 12:00:38 2011 -0500
@@ -338,7 +338,8 @@
                 else:
                     merged += 1
             util.set_flags(repo.wjoin(fd), 'l' in flags, 'x' in flags)
-            if f != fd and move and os.path.lexists(repo.wjoin(f)):
+            if (move and repo.dirstate.normalize(fd) != f
+                and os.path.lexists(repo.wjoin(f))):
                 repo.ui.debug("removing %s\n" % f)
                 os.unlink(repo.wjoin(f))
         elif m == "g": # get