@@ -14,140 +14,142 @@ GIT_AUTHOR_NAME=author@name
14
14
GIT_AUTHOR_EMAIL=bogus@email@address
15
15
export GIT_AUTHOR_NAME GIT_AUTHOR_EMAIL
16
16
17
- test_expect_success \
18
- ' prepare repository with topic branches' \
19
- ' git config core.logAllRefUpdates true &&
20
- echo First > A &&
21
- git update-index --add A &&
22
- git commit -m "Add A." &&
23
- git checkout -b my-topic-branch &&
24
- echo Second > B &&
25
- git update-index --add B &&
26
- git commit -m "Add B." &&
27
- git checkout -f master &&
28
- echo Third >> A &&
29
- git update-index A &&
30
- git commit -m "Modify A." &&
31
- git checkout -b side my-topic-branch &&
32
- echo Side >> C &&
33
- git add C &&
34
- git commit -m "Add C" &&
35
- git checkout -b nonlinear my-topic-branch &&
36
- echo Edit >> B &&
37
- git add B &&
38
- git commit -m "Modify B" &&
39
- git merge side &&
40
- git checkout -b upstream-merged-nonlinear &&
41
- git merge master &&
42
- git checkout -f my-topic-branch &&
43
- git tag topic
17
+ test_expect_success ' prepare repository with topic branches' '
18
+ git config core.logAllRefUpdates true &&
19
+ echo First >A &&
20
+ git update-index --add A &&
21
+ git commit -m "Add A." &&
22
+ git checkout -b my-topic-branch &&
23
+ echo Second >B &&
24
+ git update-index --add B &&
25
+ git commit -m "Add B." &&
26
+ git checkout -f master &&
27
+ echo Third >>A &&
28
+ git update-index A &&
29
+ git commit -m "Modify A." &&
30
+ git checkout -b side my-topic-branch &&
31
+ echo Side >>C &&
32
+ git add C &&
33
+ git commit -m "Add C" &&
34
+ git checkout -b nonlinear my-topic-branch &&
35
+ echo Edit >>B &&
36
+ git add B &&
37
+ git commit -m "Modify B" &&
38
+ git merge side &&
39
+ git checkout -b upstream-merged-nonlinear &&
40
+ git merge master &&
41
+ git checkout -f my-topic-branch &&
42
+ git tag topic
44
43
'
45
44
46
45
test_expect_success ' rebase on dirty worktree' '
47
- echo dirty >> A &&
48
- test_must_fail git rebase master'
46
+ echo dirty >>A &&
47
+ test_must_fail git rebase master
48
+ '
49
49
50
50
test_expect_success ' rebase on dirty cache' '
51
- git add A &&
52
- test_must_fail git rebase master'
51
+ git add A &&
52
+ test_must_fail git rebase master
53
+ '
53
54
54
55
test_expect_success ' rebase against master' '
55
- git reset --hard HEAD &&
56
- git rebase master'
56
+ git reset --hard HEAD &&
57
+ git rebase master
58
+ '
57
59
58
60
test_expect_success ' rebase against master twice' '
59
- git rebase master >out &&
60
- grep "Current branch my-topic-branch is up to date" out
61
+ git rebase master >out &&
62
+ grep "Current branch my-topic-branch is up to date" out
61
63
'
62
64
63
65
test_expect_success ' rebase against master twice with --force' '
64
- git rebase --force-rebase master >out &&
65
- grep "Current branch my-topic-branch is up to date, rebase forced" out
66
+ git rebase --force-rebase master >out &&
67
+ grep "Current branch my-topic-branch is up to date, rebase forced" out
66
68
'
67
69
68
70
test_expect_success ' rebase against master twice from another branch' '
69
- git checkout my-topic-branch^ &&
70
- git rebase master my-topic-branch >out &&
71
- grep "Current branch my-topic-branch is up to date" out
71
+ git checkout my-topic-branch^ &&
72
+ git rebase master my-topic-branch >out &&
73
+ grep "Current branch my-topic-branch is up to date" out
72
74
'
73
75
74
76
test_expect_success ' rebase fast-forward to master' '
75
- git checkout my-topic-branch^ &&
76
- git rebase my-topic-branch >out &&
77
- grep "Fast-forwarded HEAD to my-topic-branch" out
77
+ git checkout my-topic-branch^ &&
78
+ git rebase my-topic-branch >out &&
79
+ grep "Fast-forwarded HEAD to my-topic-branch" out
78
80
'
79
81
80
- test_expect_success \
81
- ' the rebase operation should not have destroyed author information ' \
82
- ' ! (git log | grep "Author:" | grep "<>") '
82
+ test_expect_success ' the rebase operation should not have destroyed author information ' '
83
+ ! (git log | grep "Author:" | grep "<>")
84
+ '
83
85
84
- test_expect_success \
85
- ' the rebase operation should not have destroyed author information (2)' \
86
- " git log -1 | grep 'Author: $GIT_AUTHOR_NAME <$GIT_AUTHOR_EMAIL >'"
86
+ test_expect_success ' the rebase operation should not have destroyed author information (2)' "
87
+ git log -1 |
88
+ grep 'Author: $GIT_AUTHOR_NAME <$GIT_AUTHOR_EMAIL >'
89
+ "
87
90
88
91
test_expect_success ' HEAD was detached during rebase' '
89
- test $(git rev-parse HEAD@{1}) != $(git rev-parse my-topic-branch@{1})
92
+ test $(git rev-parse HEAD@{1}) != $(git rev-parse my-topic-branch@{1})
90
93
'
91
94
92
95
test_expect_success ' rebase after merge master' '
93
- git reset --hard topic &&
94
- git merge master &&
95
- git rebase master &&
96
- ! (git show | grep "^Merge:")
96
+ git reset --hard topic &&
97
+ git merge master &&
98
+ git rebase master &&
99
+ ! (git show | grep "^Merge:")
97
100
'
98
101
99
102
test_expect_success ' rebase of history with merges is linearized' '
100
- git checkout nonlinear &&
101
- test 4 = $(git rev-list master.. | wc -l) &&
102
- git rebase master &&
103
- test 3 = $(git rev-list master.. | wc -l)
103
+ git checkout nonlinear &&
104
+ test 4 = $(git rev-list master.. | wc -l) &&
105
+ git rebase master &&
106
+ test 3 = $(git rev-list master.. | wc -l)
104
107
'
105
108
106
- test_expect_success \
107
- ' rebase of history with merges after upstream merge is linearized' '
108
- git checkout upstream-merged-nonlinear &&
109
- test 5 = $(git rev-list master.. | wc -l) &&
110
- git rebase master &&
111
- test 3 = $(git rev-list master.. | wc -l)
109
+ test_expect_success ' rebase of history with merges after upstream merge is linearized' '
110
+ git checkout upstream-merged-nonlinear &&
111
+ test 5 = $(git rev-list master.. | wc -l) &&
112
+ git rebase master &&
113
+ test 3 = $(git rev-list master.. | wc -l)
112
114
'
113
115
114
116
test_expect_success ' rebase a single mode change' '
115
- git checkout master &&
116
- echo 1 > X &&
117
- git add X &&
118
- test_tick &&
119
- git commit -m prepare &&
120
- git checkout -b modechange HEAD^ &&
121
- echo 1 > X &&
122
- git add X &&
123
- test_chmod +x A &&
124
- test_tick &&
125
- git commit -m modechange &&
126
- GIT_TRACE=1 git rebase master
117
+ git checkout master &&
118
+ echo 1 >X &&
119
+ git add X &&
120
+ test_tick &&
121
+ git commit -m prepare &&
122
+ git checkout -b modechange HEAD^ &&
123
+ echo 1 >X &&
124
+ git add X &&
125
+ test_chmod +x A &&
126
+ test_tick &&
127
+ git commit -m modechange &&
128
+ GIT_TRACE=1 git rebase master
127
129
'
128
130
129
131
test_expect_success ' Show verbose error when HEAD could not be detached' '
130
- : > B &&
131
- test_must_fail git rebase topic 2> output.err > output.out &&
132
- grep "Untracked working tree file .B. would be overwritten" output.err
132
+ > B &&
133
+ test_must_fail git rebase topic 2>output.err >output.out &&
134
+ grep "Untracked working tree file .B. would be overwritten" output.err
133
135
'
134
136
rm -f B
135
137
136
138
test_expect_success ' dump usage when upstream arg is missing' '
137
- git checkout -b usage topic &&
138
- test_must_fail git rebase 2>error1 &&
139
- grep "[Uu]sage" error1 &&
140
- test_must_fail git rebase --abort 2>error2 &&
141
- grep "No rebase in progress" error2 &&
142
- test_must_fail git rebase --onto master 2>error3 &&
143
- grep "[Uu]sage" error3 &&
144
- ! grep "can.t shift" error3
139
+ git checkout -b usage topic &&
140
+ test_must_fail git rebase 2>error1 &&
141
+ grep "[Uu]sage" error1 &&
142
+ test_must_fail git rebase --abort 2>error2 &&
143
+ grep "No rebase in progress" error2 &&
144
+ test_must_fail git rebase --onto master 2>error3 &&
145
+ grep "[Uu]sage" error3 &&
146
+ ! grep "can.t shift" error3
145
147
'
146
148
147
149
test_expect_success ' rebase -q is quiet' '
148
- git checkout -b quiet topic &&
149
- git rebase -q master > output.out 2>&1 &&
150
- test ! -s output.out
150
+ git checkout -b quiet topic &&
151
+ git rebase -q master >output.out 2>&1 &&
152
+ test ! -s output.out
151
153
'
152
154
153
155
test_expect_success ' Rebase a commit that sprinkles CRs in' '
0 commit comments