Merge branch 'ss/cherry-pick-x-doc' into maint
[git/mjg.git] / t / t7507-commit-verbose.sh
blobda5bd3b5a585667dad97481df27049f0aa7415eb
1 #!/bin/sh
3 test_description='verbose commit template'
4 . ./test-lib.sh
6 cat >check-for-diff <<EOF
7 #!$SHELL_PATH
8 exec grep '^diff --git' "\$1"
9 EOF
10 chmod +x check-for-diff
11 test_set_editor "$PWD/check-for-diff"
13 cat >message <<'EOF'
14 subject
16 body
17 EOF
19 test_expect_success 'setup' '
20 echo content >file &&
21 git add file &&
22 git commit -F message
25 test_expect_success 'initial commit shows verbose diff' '
26 git commit --amend -v
29 test_expect_success 'second commit' '
30 echo content modified >file &&
31 git add file &&
32 git commit -F message
35 check_message() {
36 git log -1 --pretty=format:%s%n%n%b >actual &&
37 test_cmp "$1" actual
40 test_expect_success 'verbose diff is stripped out' '
41 git commit --amend -v &&
42 check_message message
45 test_expect_success 'verbose diff is stripped out (mnemonicprefix)' '
46 git config diff.mnemonicprefix true &&
47 git commit --amend -v &&
48 check_message message
51 cat >diff <<'EOF'
52 This is an example commit message that contains a diff.
54 diff --git c/file i/file
55 new file mode 100644
56 index 0000000..f95c11d
57 --- /dev/null
58 +++ i/file
59 @@ -0,0 +1 @@
60 +this is some content
61 EOF
63 test_expect_success 'diff in message is retained without -v' '
64 git commit --amend -F diff &&
65 check_message diff
68 test_expect_failure 'diff in message is retained with -v' '
69 git commit --amend -F diff -v &&
70 check_message diff
73 test_done