]>
Commit | Line | Data |
---|---|---|
0b38227f JK |
1 | #!/bin/sh |
2 | ||
3 | test_description='verbose commit template' | |
4 | . ./test-lib.sh | |
5 | ||
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" | |
12 | ||
13 | cat >message <<'EOF' | |
14 | subject | |
15 | ||
16 | body | |
17 | EOF | |
18 | ||
19 | test_expect_success 'setup' ' | |
20 | echo content >file && | |
21 | git add file && | |
22 | git commit -F message | |
23 | ' | |
24 | ||
1324fb6f | 25 | test_expect_success 'initial commit shows verbose diff' ' |
0b38227f JK |
26 | git commit --amend -v |
27 | ' | |
28 | ||
29 | test_expect_success 'second commit' ' | |
30 | echo content modified >file && | |
31 | git add file && | |
32 | git commit -F message | |
33 | ' | |
34 | ||
35 | check_message() { | |
36 | git log -1 --pretty=format:%s%n%n%b >actual && | |
37 | test_cmp "$1" actual | |
38 | } | |
39 | ||
40 | test_expect_success 'verbose diff is stripped out' ' | |
41 | git commit --amend -v && | |
42 | check_message message | |
43 | ' | |
44 | ||
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 | |
49 | ' | |
50 | ||
51 | cat >diff <<'EOF' | |
52 | This is an example commit message that contains a diff. | |
53 | ||
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 | |
62 | ||
63 | test_expect_success 'diff in message is retained without -v' ' | |
64 | git commit --amend -F diff && | |
65 | check_message diff | |
66 | ' | |
67 | ||
68 | test_expect_failure 'diff in message is retained with -v' ' | |
69 | git commit --amend -F diff -v && | |
70 | check_message diff | |
71 | ' | |
72 | ||
73 | test_done |