tests/test-merge-exec.t
branchstable
changeset 44910 783f059509e4
parent 44909 d452acc8cce8
child 44911 84614212ae39
--- a/tests/test-merge-exec.t	Sat May 16 20:37:56 2020 +0200
+++ b/tests/test-merge-exec.t	Sat May 16 20:38:07 2020 +0200
@@ -133,3 +133,83 @@
 
 
   $ cd ..
+
+Testing merging mode change with rename + modification on both side
+===================================================================
+
+
+  $ hg clone base-repo rename+mod-merge-repo
+  updating to branch default
+  2 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  $ cd rename+mod-merge-repo
+
+make "a" executable on one side
+
+  $ chmod +x a
+  $ cat << EOF > a
+  > 1
+  > x
+  > 3
+  > 4
+  > 5
+  > 6
+  > 7
+  > 8
+  > 9
+  > EOF
+  $ hg status
+  M a
+  $ hg ci -m "make a executable, and change start"
+  $ [ -x a ] || echo "executable bit not recorded"
+  $ hg up ".^"
+  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+
+make "a" renamed on the other side
+
+  $ hg mv a z
+  $ hg st --copies
+  A z
+    a
+  R a
+  $ cat << EOF > z
+  > 1
+  > 2
+  > 3
+  > 4
+  > 5
+  > 6
+  > 7
+  > x
+  > 9
+  > EOF
+  $ hg ci -m "rename a to z, and change end"
+  created new head
+
+merge them (from the rename side)
+
+  $ hg merge 'desc("make a executable")'
+  merging z and a to z
+  0 files updated, 1 files merged, 0 files removed, 0 files unresolved
+  (branch merge, don't forget to commit)
+  $ hg st --copies
+  M z
+    a
+  $ [ -x z ] || echo "executable bit lost"
+  executable bit lost
+
+merge them (from the chmod side)
+
+  $ hg up -C 'desc("make a executable")'
+  1 files updated, 0 files merged, 1 files removed, 0 files unresolved
+  $ hg merge 'desc("rename a to z")'
+  merging a and z to z
+  0 files updated, 1 files merged, 0 files removed, 0 files unresolved
+  (branch merge, don't forget to commit)
+  $ hg st --copies
+  M z
+    a
+  R a
+  $ [ -x z ] || echo "executable bit lost"
+  executable bit lost
+
+  $ cd ..