Merge branch 'zj/diff-stat-smaller-num-columns'
[git] / t / t3505-cherry-pick-empty.sh
1 #!/bin/sh
2
3 test_description='test cherry-picking an empty commit'
4
5 . ./test-lib.sh
6
7 test_expect_success setup '
8
9         echo first > file1 &&
10         git add file1 &&
11         test_tick &&
12         git commit -m "first" &&
13
14         git checkout -b empty-branch &&
15         test_tick &&
16         git commit --allow-empty -m "empty" &&
17
18         echo third >> file1 &&
19         git add file1 &&
20         test_tick &&
21         git commit --allow-empty-message -m "" &&
22
23         git checkout master &&
24         git checkout -b empty-branch2 &&
25         test_tick &&
26         git commit --allow-empty -m "empty"
27
28 '
29
30 test_expect_success 'cherry-pick an empty commit' '
31         git checkout master && {
32                 git cherry-pick empty-branch^
33                 test "$?" = 1
34         }
35 '
36
37 test_expect_success 'index lockfile was removed' '
38
39         test ! -f .git/index.lock
40
41 '
42
43 test_expect_success 'cherry-pick a commit with an empty message' '
44         git checkout master && {
45                 git cherry-pick empty-branch
46                 test "$?" = 1
47         }
48 '
49
50 test_expect_success 'index lockfile was removed' '
51
52         test ! -f .git/index.lock
53
54 '
55
56 test_expect_success 'cherry pick an empty non-ff commit without --allow-empty' '
57         git checkout master &&
58         echo fourth >>file2 &&
59         git add file2 &&
60         git commit -m "fourth" &&
61         test_must_fail git cherry-pick empty-branch2
62 '
63
64 test_expect_success 'cherry pick an empty non-ff commit with --allow-empty' '
65         git checkout master &&
66         git cherry-pick --allow-empty empty-branch2
67 '
68
69 test_expect_success 'cherry pick with --keep-redundant-commits' '
70         git checkout master &&
71         git cherry-pick --keep-redundant-commits HEAD^
72 '
73
74 test_done