Fix local file changes being ignored after non-branch merge
Bug introduced in
eea96285cbf9
Spotted by TAH
--- a/mercurial/hg.py Fri Jul 22 19:46:02 2005 -0800
+++ b/mercurial/hg.py Sat Jul 23 10:00:56 2005 -0500
@@ -1506,7 +1506,9 @@
m, o, flag = merge[f]
self.merge3(f, m, o)
util.set_exec(self.wjoin(f), flag)
- if moddirstate:
+ if moddirstate and mode == 'm':
+ # only update dirstate on branch merge, otherwise we
+ # could mark files with changes as unchanged
self.dirstate.update([f], mode)
remove.sort()
--- a/tests/test-up-local-change.out Fri Jul 22 19:46:02 2005 -0800
+++ b/tests/test-up-local-change.out Sat Jul 23 10:00:56 2005 -0500
@@ -70,3 +70,9 @@
+ hg diff
+ sed 's/\(\(---\|+++\).*\)\t.*/\1/'
+diff -r 1e71731e6fbb a
+--- a/a
++++ b/a
+@@ -1,1 +1,1 @@
+-a2
++abc