diff --git a/tests/test-merge-exec.t b/tests/test-merge-exec.t --- a/tests/test-merge-exec.t +++ b/tests/test-merge-exec.t @@ -27,9 +27,31 @@ $ hg commit -m "initial commit" $ cd .. + $ hg init base-exec + $ cd base-exec + $ cat << EOF > a + > 1 + > 2 + > 3 + > 4 + > 5 + > 6 + > 7 + > 8 + > 9 + > EOF + $ chmod +x a + $ touch b + $ hg add a b + $ hg commit -m "initial commit" + $ cd .. + Testing merging mode change =========================== +Adding the flag +--------------- + setup Change on one side, executable bit on the other @@ -80,6 +102,63 @@ $ cd .. + +Removing the flag +----------------- + +setup + +Change on one side, executable bit on the other + + $ hg clone base-exec simple-merge-repo-removal + updating to branch default + 2 files updated, 0 files merged, 0 files removed, 0 files unresolved + $ cd simple-merge-repo-removal + $ chmod -x a + $ hg ci -m "make a non-executable, no change" + $ [ -x a ] && echo "executable bit not removed" + [1] + $ hg up ".^" + 1 files updated, 0 files merged, 0 files removed, 0 files unresolved + $ cat << EOF > a + > 1 + > 2 + > 3 + > 4 + > 5 + > 6 + > 7 + > x + > 9 + > EOF + $ hg commit -m "edit end of file" + created new head + +merge them (from the update side) + + $ hg merge 'desc("make a non-executable, no change")' + 1 files updated, 0 files merged, 0 files removed, 0 files unresolved + (branch merge, don't forget to commit) + $ hg st + M a + $ [ -x a ] && echo "executable bit not removed" + [1] + +merge them (from the chmod side) + + $ hg up -C 'desc("make a non-executable, no change")' + 1 files updated, 0 files merged, 0 files removed, 0 files unresolved + $ hg merge 'desc("edit end of file")' + 1 files updated, 0 files merged, 0 files removed, 0 files unresolved + (branch merge, don't forget to commit) + $ hg st + M a + $ [ -x a ] && echo "executable bit not removed" + [1] + + + $ cd .. + Testing merging mode change with rename =======================================