git-rebase--interactive: auto amend only edited commit
[gitweb.git] / t / t7502-commit.sh
index 385c8f46e1412cb9d794e4e51912fc0d7725bfac..3eb9faedcf75c7b8a535b369e5a19107c6e81026 100755 (executable)
@@ -141,8 +141,8 @@ test_expect_success 'cleanup commit messages (strip,-F)' '
 
 echo "sample
 
-# Please enter the commit message for your changes.
-# (Comment lines starting with '#' will not be included)" >expect
+# Please enter the commit message for your changes. Lines starting
+# with '#' will be ignored, and an empty message aborts the commit." >expect
 
 test_expect_success 'cleanup commit messages (strip,-F,-e)' '
 
@@ -196,37 +196,44 @@ chmod +x .git/FAKE_EDITOR
 
 test_expect_success 'do not fire editor in the presence of conflicts' '
 
-       git clean
-       echo f>g
-       git add g
-       git commit -myes
-       git branch second
-       echo master>g
-       echo g>h
-       git add g h
-       git commit -mmaster
-       git checkout second
-       echo second>g
-       git add g
-       git commit -msecond
-       git cherry-pick -n master
-       echo "editor not started" > .git/result
-       GIT_EDITOR=`pwd`/.git/FAKE_EDITOR git commit && exit 1  # should fail
-       test "`cat .git/result`" = "editor not started"
+       git clean -f &&
+       echo f >g &&
+       git add g &&
+       git commit -m "add g" &&
+       git branch second &&
+       echo master >g &&
+       echo g >h &&
+       git add g h &&
+       git commit -m "modify g and add h" &&
+       git checkout second &&
+       echo second >g &&
+       git add g &&
+       git commit -m second &&
+       # Must fail due to conflict
+       test_must_fail git cherry-pick -n master &&
+       echo "editor not started" >.git/result &&
+       (
+               GIT_EDITOR="$(pwd)/.git/FAKE_EDITOR" &&
+               export GIT_EDITOR &&
+               test_must_fail git commit
+       ) &&
+       test "$(cat .git/result)" = "editor not started"
 '
 
 pwd=`pwd`
-cat > .git/FAKE_EDITOR << EOF
-#! /bin/sh
+cat >.git/FAKE_EDITOR <<EOF
+#! $SHELL_PATH
 # kill -TERM command added below.
 EOF
 
 test_expect_success 'a SIGTERM should break locks' '
        echo >>negative &&
-       sh -c '\''
+       ! "$SHELL_PATH" -c '\''
          echo kill -TERM $$ >> .git/FAKE_EDITOR
-         GIT_EDITOR=.git/FAKE_EDITOR exec git commit -a'\'' && exit 1  # should fail
-       ! test -f .git/index.lock
+         GIT_EDITOR=.git/FAKE_EDITOR
+         export GIT_EDITOR
+         exec git commit -a'\'' &&
+       test ! -f .git/index.lock
 '
 
 rm -f .git/MERGE_MSG .git/COMMIT_EDITMSG