]> asedeno.scripts.mit.edu Git - git.git/blobdiff - t/t7502-commit.sh
Merge branch 'jc/checkout'
[git.git] / t / t7502-commit.sh
index b780fddc08f9c01eaf1143b9178ab5b7ecd032db..46ec1ce8aaa0305f6b4569664de041137db137d7 100755 (executable)
@@ -85,7 +85,7 @@ test_expect_success 'verbose' '
        git add negative &&
        git status -v | sed -ne "/^diff --git /p" >actual &&
        echo "diff --git a/negative b/negative" >expect &&
-       diff -u expect actual
+       test_cmp expect actual
 
 '
 
@@ -95,7 +95,7 @@ test_expect_success 'cleanup commit messages (verbatim,-t)' '
        { echo;echo "# text";echo; } >expect &&
        git commit --cleanup=verbatim -t expect -a &&
        git cat-file -p HEAD |sed -e "1,/^\$/d" |head -n 3 >actual &&
-       diff -u expect actual
+       test_cmp expect actual
 
 '
 
@@ -104,7 +104,7 @@ test_expect_success 'cleanup commit messages (verbatim,-F)' '
        echo >>negative &&
        git commit --cleanup=verbatim -F expect -a &&
        git cat-file -p HEAD |sed -e "1,/^\$/d">actual &&
-       diff -u expect actual
+       test_cmp expect actual
 
 '
 
@@ -113,7 +113,7 @@ test_expect_success 'cleanup commit messages (verbatim,-m)' '
        echo >>negative &&
        git commit --cleanup=verbatim -m "$(cat expect)" -a &&
        git cat-file -p HEAD |sed -e "1,/^\$/d">actual &&
-       diff -u expect actual
+       test_cmp expect actual
 
 '
 
@@ -124,7 +124,7 @@ test_expect_success 'cleanup commit messages (whitespace,-F)' '
        echo "# text" >expect &&
        git commit --cleanup=whitespace -F text -a &&
        git cat-file -p HEAD |sed -e "1,/^\$/d">actual &&
-       diff -u expect actual
+       test_cmp expect actual
 
 '
 
@@ -135,7 +135,7 @@ test_expect_success 'cleanup commit messages (strip,-F)' '
        echo sample >expect &&
        git commit --cleanup=strip -F text -a &&
        git cat-file -p HEAD |sed -e "1,/^\$/d">actual &&
-       diff -u expect actual
+       test_cmp expect actual
 
 '
 
@@ -150,10 +150,39 @@ test_expect_success 'cleanup commit messages (strip,-F,-e)' '
        { echo;echo sample;echo; } >text &&
        git commit -e -F text -a &&
        head -n 4 .git/COMMIT_EDITMSG >actual &&
-       diff -u expect actual
+       test_cmp expect actual
 
 '
 
+echo "#
+# Author:    $GIT_AUTHOR_NAME <$GIT_AUTHOR_EMAIL>
+#" >> expect
+
+test_expect_success 'author different from committer' '
+
+       echo >>negative &&
+       git commit -e -m "sample"
+       head -n 7 .git/COMMIT_EDITMSG >actual &&
+       test_cmp expect actual
+'
+
+mv expect expect.tmp
+sed '$d' < expect.tmp > expect
+rm -f expect.tmp
+echo "# Committer:
+#" >> expect
+unset GIT_COMMITTER_EMAIL
+unset GIT_COMMITTER_NAME
+
+test_expect_success 'committer is automatic' '
+
+       echo >>negative &&
+       git commit -e -m "sample"
+       head -n 8 .git/COMMIT_EDITMSG | \
+       sed "s/^# Committer: .*/# Committer:/" >actual &&
+       test_cmp expect actual
+'
+
 pwd=`pwd`
 cat >> .git/FAKE_EDITOR << EOF
 #! /bin/sh
@@ -183,4 +212,18 @@ test_expect_success 'do not fire editor in the presence of conflicts' '
        test "`cat .git/result`" = "editor not started"
 '
 
+pwd=`pwd`
+cat > .git/FAKE_EDITOR << EOF
+#! /bin/sh
+# kill -TERM command added below.
+EOF
+
+test_expect_success 'a SIGTERM should break locks' '
+       echo >>negative &&
+       sh -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
+'
+
 test_done