@@ -8,78 +8,71 @@ This test runs git rebase --signoff and make sure that it works.
8
8
TEST_PASSES_SANITIZE_LEAK=true
9
9
. ./test-lib.sh
10
10
11
- # A simple file to commit
12
- cat > file << EOF
13
- a
14
- EOF
11
+ test_expect_success ' setup' '
12
+ git commit --allow-empty -m "Initial empty commit" &&
13
+ test_commit first file a &&
14
+
15
+ ident="$GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL>" &&
15
16
16
- # Expected commit message for initial commit after rebase --signoff
17
- cat > expected-initial-signed << EOF
18
- Initial empty commit
17
+ # Expected commit message for initial commit after rebase --signoff
18
+ cat >expected-initial-signed <<- EOF &&
19
+ Initial empty commit
19
20
20
- Signed-off-by: $( git var GIT_COMMITTER_IDENT | sed -e " s/>.*/>/ " )
21
- EOF
21
+ Signed-off-by: $ident
22
+ EOF
22
23
23
- # Expected commit message after rebase --signoff
24
- cat > expected-signed << EOF
25
- first
24
+ # Expected commit message after rebase --signoff
25
+ cat >expected-signed <<- EOF &&
26
+ first
26
27
27
- Signed-off-by: $( git var GIT_COMMITTER_IDENT | sed -e " s/>.*/>/ " )
28
- EOF
28
+ Signed-off-by: $ident
29
+ EOF
29
30
30
- # Expected commit message after rebase without --signoff (or with --no-signoff)
31
- cat > expected-unsigned << EOF
32
- first
33
- EOF
31
+ # Expected commit message after rebase without --signoff (or with --no-signoff)
32
+ cat >expected-unsigned <<- EOF &&
33
+ first
34
+ EOF
34
35
36
+ git config alias.rbs "rebase --signoff"
37
+ '
35
38
36
39
# We configure an alias to do the rebase --signoff so that
37
40
# on the next subtest we can show that --no-signoff overrides the alias
38
- test_expect_success ' rebase --signoff adds a sign-off line' '
39
- git commit --allow-empty -m "Initial empty commit" &&
40
- git add file && git commit -m first &&
41
- git config alias.rbs "rebase --signoff" &&
42
- git rbs HEAD^ &&
43
- git cat-file commit HEAD | sed -e "1,/^\$/d" > actual &&
44
- test_cmp expected-signed actual
41
+ test_expect_success ' rebase --apply --signoff adds a sign-off line' '
42
+ git rbs --apply HEAD^ &&
43
+ test_commit_message HEAD expected-signed
45
44
'
46
45
47
46
test_expect_success ' rebase --no-signoff does not add a sign-off line' '
48
47
git commit --amend -m "first" &&
49
48
git rbs --no-signoff HEAD^ &&
50
- git cat-file commit HEAD | sed -e "1,/^\$/d" > actual &&
51
- test_cmp expected-unsigned actual
49
+ test_commit_message HEAD expected-unsigned
52
50
'
53
51
54
52
test_expect_success ' rebase --exec --signoff adds a sign-off line' '
55
53
test_when_finished "rm exec" &&
56
54
git commit --amend -m "first" &&
57
55
git rebase --exec "touch exec" --signoff HEAD^ &&
58
56
test_path_is_file exec &&
59
- git cat-file commit HEAD | sed -e "1,/^\$/d" >actual &&
60
- test_cmp expected-signed actual
57
+ test_commit_message HEAD expected-signed
61
58
'
62
59
63
60
test_expect_success ' rebase --root --signoff adds a sign-off line' '
64
61
git commit --amend -m "first" &&
65
62
git rebase --root --keep-empty --signoff &&
66
- git cat-file commit HEAD^ | sed -e "1,/^\$/d" >actual &&
67
- test_cmp expected-initial-signed actual &&
68
- git cat-file commit HEAD | sed -e "1,/^\$/d" >actual &&
69
- test_cmp expected-signed actual
63
+ test_commit_message HEAD^ expected-initial-signed &&
64
+ test_commit_message HEAD expected-signed
70
65
'
71
66
72
67
test_expect_success ' rebase -i --signoff fails' '
73
68
git commit --amend -m "first" &&
74
69
git rebase -i --signoff HEAD^ &&
75
- git cat-file commit HEAD | sed -e "1,/^\$/d" >actual &&
76
- test_cmp expected-signed actual
70
+ test_commit_message HEAD expected-signed
77
71
'
78
72
79
73
test_expect_success ' rebase -m --signoff fails' '
80
74
git commit --amend -m "first" &&
81
75
git rebase -m --signoff HEAD^ &&
82
- git cat-file commit HEAD | sed -e "1,/^\$/d" >actual &&
83
- test_cmp expected-signed actual
76
+ test_commit_message HEAD expected-signed
84
77
'
85
78
test_done
0 commit comments