git stash: make sure that .git/logs/refs/ exists
[git/mingw/4msysgit.git] / t / t4021-format-patch-numbered.sh
blob886494b58f6739d40c2c34724064317b0d3be770
1 #!/bin/sh
3 # Copyright (c) 2006 Brian C Gernhardt
6 test_description='Format-patch numbering options'
8 . ./test-lib.sh
10 test_expect_success setup '
12 echo A > file &&
13 git add file &&
14 git commit -m First &&
16 echo B >> file &&
17 git commit -a -m Second &&
19 echo C >> file &&
20 git commit -a -m Third
24 # Each of these gets used multiple times.
26 test_num_no_numbered() {
27 cnt=$(grep "^Subject: \[PATCH\]" $1 | wc -l) &&
28 test $cnt = $2
31 test_single_no_numbered() {
32 test_num_no_numbered $1 1
35 test_no_numbered() {
36 test_num_no_numbered $1 2
39 test_single_numbered() {
40 grep "^Subject: \[PATCH 1/1\]" $1
43 test_numbered() {
44 grep "^Subject: \[PATCH 1/2\]" $1 &&
45 grep "^Subject: \[PATCH 2/2\]" $1
48 test_expect_success 'single patch defaults to no numbers' '
49 git format-patch --stdout HEAD~1 >patch0.single &&
50 test_single_no_numbered patch0.single
53 test_expect_success 'multiple patch defaults to numbered' '
55 git format-patch --stdout HEAD~2 >patch0.multiple &&
56 test_numbered patch0.multiple
60 test_expect_success 'Use --numbered' '
62 git format-patch --numbered --stdout HEAD~1 >patch1 &&
63 test_single_numbered patch1
67 test_expect_success 'format.numbered = true' '
69 git config format.numbered true &&
70 git format-patch --stdout HEAD~2 >patch2 &&
71 test_numbered patch2
75 test_expect_success 'format.numbered && single patch' '
77 git format-patch --stdout HEAD^ > patch3 &&
78 test_single_numbered patch3
82 test_expect_success 'format.numbered && --no-numbered' '
84 git format-patch --no-numbered --stdout HEAD~2 >patch4 &&
85 test_no_numbered patch4
89 test_expect_success 'format.numbered && --keep-subject' '
91 git format-patch --keep-subject --stdout HEAD^ >patch4a &&
92 grep "^Subject: Third" patch4a
96 test_expect_success 'format.numbered = auto' '
98 git config format.numbered auto &&
99 git format-patch --stdout HEAD~2 > patch5 &&
100 test_numbered patch5
104 test_expect_success 'format.numbered = auto && single patch' '
106 git format-patch --stdout HEAD^ > patch6 &&
107 test_single_no_numbered patch6
111 test_expect_success 'format.numbered = auto && --no-numbered' '
113 git format-patch --no-numbered --stdout HEAD~2 > patch7 &&
114 test_no_numbered patch7
118 test_expect_success '--start-number && --numbered' '
120 git format-patch --start-number 3 --numbered --stdout HEAD~1 > patch8 &&
121 grep "^Subject: \[PATCH 3/3\]" patch8
124 test_done