expose a helper function peel_to_type().
[gitweb.git] / t / t7502-commit.sh
index 21ac785e3d61aa94bae22db488fae893f315ba0b..b780fddc08f9c01eaf1143b9178ab5b7ecd032db 100755 (executable)
@@ -89,4 +89,98 @@ test_expect_success 'verbose' '
 
 '
 
+test_expect_success 'cleanup commit messages (verbatim,-t)' '
+
+       echo >>negative &&
+       { 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_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_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_expect_success 'cleanup commit messages (whitespace,-F)' '
+
+       echo >>negative &&
+       { echo;echo "# text";echo; } >text &&
+       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_expect_success 'cleanup commit messages (strip,-F)' '
+
+       echo >>negative &&
+       { echo;echo "# text";echo sample;echo; } >text &&
+       echo sample >expect &&
+       git commit --cleanup=strip -F text -a &&
+       git cat-file -p HEAD |sed -e "1,/^\$/d">actual &&
+       diff -u expect actual
+
+'
+
+echo "sample
+
+# Please enter the commit message for your changes.
+# (Comment lines starting with '#' will not be included)" >expect
+
+test_expect_success 'cleanup commit messages (strip,-F,-e)' '
+
+       echo >>negative &&
+       { echo;echo sample;echo; } >text &&
+       git commit -e -F text -a &&
+       head -n 4 .git/COMMIT_EDITMSG >actual &&
+       diff -u expect actual
+
+'
+
+pwd=`pwd`
+cat >> .git/FAKE_EDITOR << EOF
+#! /bin/sh
+echo editor started > "$pwd/.git/result"
+exit 0
+EOF
+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"
+'
+
 test_done