rebase: clearer names for directory variables
Instead of using the old variable name 'dotest' for "$GIT_DIR"/rebase-merge and no variable for "$GIT_DIR"/rebase-apply, introduce two variables 'merge_dir' and 'apply_dir' for these paths. Signed-off-by: Martin von Zweigbergk <martin.von.zweigbergk@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Martin von Zweigbergk committed
Feb 6, 2011 at 13:43 UTC
69a636ad1ac73a596d8c99a4206a6475b15e8d8d
1 file changed
+71
-70
git-rebase.sh
+71
-70
@@ -46,7 +46,8 @@ unset newbase
46
strategy=recursive
47
strategy_opts=
48
do_merge=
49
-dotest="$GIT_DIR"/rebase-merge
49
+merge_dir="$GIT_DIR"/rebase-merge
50
+apply_dir="$GIT_DIR"/rebase-apply
51
prec=4
52
verbose=
53
diffstat=
@@ -58,7 +59,7 @@ allow_rerere_autoupdate=
59
60
continue_merge () {
61
test -n "$prev_head" || die "prev_head must be defined"
61
- test -d "$dotest" || die "$dotest directory does not exist"
62
+ test -d "$merge_dir" || die "$merge_dir directory does not exist"
63
64
unmerged=$(git ls-files -u)
65
if test -n "$unmerged"
@@ -68,7 +69,7 @@ continue_merge () {
69
die "$RESOLVEMSG"
70
fi
71
71
- cmt=`cat "$dotest/current"`
72
+ cmt=`cat "$merge_dir/current"`
73
if ! git diff-index --quiet --ignore-submodules HEAD --
74
then
75
if ! git commit --no-verify -C "$cmt"
@@ -81,7 +82,7 @@ continue_merge () {
82
then
83
printf "Committed: %0${prec}d " $msgnum
84
fi
84
- echo "$cmt $(git rev-parse HEAD^0)" >> "$dotest/rewritten"
85
+ echo "$cmt $(git rev-parse HEAD^0)" >> "$merge_dir/rewritten"
86
else
87
if test -z "$GIT_QUIET"
88
then
@@ -93,22 +94,22 @@ continue_merge () {
94
95
prev_head=`git rev-parse HEAD^0`
96
# save the resulting commit so we can read-tree on it later
96
- echo "$prev_head" > "$dotest/prev_head"
97
+ echo "$prev_head" > "$merge_dir/prev_head"
98
99
# onto the next patch:
100
msgnum=$(($msgnum + 1))
100
- echo "$msgnum" >"$dotest/msgnum"
101
+ echo "$msgnum" >"$merge_dir/msgnum"
102
}
103
104
call_merge () {
104
- cmt="$(cat "$dotest/cmt.$1")"
105
- echo "$cmt" > "$dotest/current"
105
+ cmt="$(cat "$merge_dir/cmt.$1")"
106
+ echo "$cmt" > "$merge_dir/current"
107
hd=$(git rev-parse --verify HEAD)
108
cmt_name=$(git symbolic-ref HEAD 2> /dev/null || echo HEAD)
108
- msgnum=$(cat "$dotest/msgnum")
109
- end=$(cat "$dotest/end")
109
+ msgnum=$(cat "$merge_dir/msgnum")
110
+ end=$(cat "$merge_dir/end")
111
eval GITHEAD_$cmt='"${cmt_name##refs/heads/}~$(($end - $msgnum))"'
111
- eval GITHEAD_$hd='$(cat "$dotest/onto_name")'
112
+ eval GITHEAD_$hd='$(cat "$merge_dir/onto_name")'
113
export GITHEAD_$cmt GITHEAD_$hd
114
if test -n "$GIT_QUIET"
115
then
@@ -138,9 +139,9 @@ call_merge () {
139
140
move_to_original_branch () {
141
test -z "$head_name" &&
141
- head_name="$(cat "$dotest"/head-name)" &&
142
- onto="$(cat "$dotest"/onto)" &&
143
- orig_head="$(cat "$dotest"/orig-head)"
142
+ head_name="$(cat "$merge_dir"/head-name)" &&
143
+ onto="$(cat "$merge_dir"/onto)" &&
144
+ orig_head="$(cat "$merge_dir"/orig-head)"
145
case "$head_name" in
146
refs/*)
147
message="rebase finished: $head_name onto $onto"
@@ -154,12 +155,12 @@ move_to_original_branch () {
155
156
finish_rb_merge () {
157
move_to_original_branch
157
- git notes copy --for-rewrite=rebase < "$dotest"/rewritten
158
+ git notes copy --for-rewrite=rebase < "$merge_dir"/rewritten
159
if test -x "$GIT_DIR"/hooks/post-rewrite &&
159
- test -s "$dotest"/rewritten; then
160
- "$GIT_DIR"/hooks/post-rewrite rebase < "$dotest"/rewritten
160
+ test -s "$merge_dir"/rewritten; then
161
+ "$GIT_DIR"/hooks/post-rewrite rebase < "$merge_dir"/rewritten
162
fi
162
- rm -r "$dotest"
163
+ rm -r "$merge_dir"
164
say All done.
165
}
166
@@ -183,7 +184,7 @@ is_interactive () {
184
export GIT_EDITOR
185
fi
186
186
- test -n "$interactive_rebase" || test -f "$dotest"/interactive
187
+ test -n "$interactive_rebase" || test -f "$merge_dir"/interactive
188
}
189
190
run_pre_rebase_hook () {
@@ -195,7 +196,7 @@ run_pre_rebase_hook () {
196
fi
197
}
198
198
-test -f "$GIT_DIR"/rebase-apply/applying &&
199
+test -f "$apply_dir"/applying &&
200
die 'It looks like git-am is in progress. Cannot rebase.'
201
202
is_interactive "$@" && exec git-rebase--interactive "$@"
@@ -210,7 +211,7 @@ do
211
OK_TO_SKIP_PRE_REBASE=
212
;;
213
--continue)
213
- test -d "$dotest" -o -d "$GIT_DIR"/rebase-apply ||
214
+ test -d "$merge_dir" -o -d "$apply_dir" ||
215
die "No rebase in progress?"
216
217
git update-index --ignore-submodules --refresh &&
@@ -219,13 +220,13 @@ do
220
echo "mark them as resolved using git add"
221
exit 1
222
}
222
- if test -d "$dotest"
223
+ if test -d "$merge_dir"
224
then
224
- prev_head=$(cat "$dotest/prev_head")
225
- end=$(cat "$dotest/end")
226
- msgnum=$(cat "$dotest/msgnum")
227
- onto=$(cat "$dotest/onto")
228
- GIT_QUIET=$(cat "$dotest/quiet")
225
+ prev_head=$(cat "$merge_dir/prev_head")
226
+ end=$(cat "$merge_dir/end")
227
+ msgnum=$(cat "$merge_dir/msgnum")
228
+ onto=$(cat "$merge_dir/onto")
229
+ GIT_QUIET=$(cat "$merge_dir/quiet")
230
continue_merge
231
while test "$msgnum" -le "$end"
232
do
@@ -235,28 +236,28 @@ do
236
finish_rb_merge
237
exit
238
fi
238
- head_name=$(cat "$GIT_DIR"/rebase-apply/head-name) &&
239
- onto=$(cat "$GIT_DIR"/rebase-apply/onto) &&
240
- orig_head=$(cat "$GIT_DIR"/rebase-apply/orig-head) &&
241
- GIT_QUIET=$(cat "$GIT_DIR"/rebase-apply/quiet)
239
+ head_name=$(cat "$apply_dir"/head-name) &&
240
+ onto=$(cat "$apply_dir"/onto) &&
241
+ orig_head=$(cat "$apply_dir"/orig-head) &&
242
+ GIT_QUIET=$(cat "$apply_dir"/quiet)
243
git am --resolved --3way --resolvemsg="$RESOLVEMSG" &&
244
move_to_original_branch
245
exit
246
;;
247
--skip)
247
- test -d "$dotest" -o -d "$GIT_DIR"/rebase-apply ||
248
+ test -d "$merge_dir" -o -d "$apply_dir" ||
249
die "No rebase in progress?"
250
251
git reset --hard HEAD || exit $?
251
- if test -d "$dotest"
252
+ if test -d "$merge_dir"
253
then
254
git rerere clear
254
- prev_head=$(cat "$dotest/prev_head")
255
- end=$(cat "$dotest/end")
256
- msgnum=$(cat "$dotest/msgnum")
255
+ prev_head=$(cat "$merge_dir/prev_head")
256
+ end=$(cat "$merge_dir/end")
257
+ msgnum=$(cat "$merge_dir/msgnum")
258
msgnum=$(($msgnum + 1))
258
- onto=$(cat "$dotest/onto")
259
- GIT_QUIET=$(cat "$dotest/quiet")
259
+ onto=$(cat "$merge_dir/onto")
260
+ GIT_QUIET=$(cat "$merge_dir/quiet")
261
while test "$msgnum" -le "$end"
262
do
263
call_merge "$msgnum"
@@ -265,31 +266,31 @@ do
266
finish_rb_merge
267
exit
268
fi
268
- head_name=$(cat "$GIT_DIR"/rebase-apply/head-name) &&
269
- onto=$(cat "$GIT_DIR"/rebase-apply/onto) &&
270
- orig_head=$(cat "$GIT_DIR"/rebase-apply/orig-head) &&
271
- GIT_QUIET=$(cat "$GIT_DIR"/rebase-apply/quiet)
269
+ head_name=$(cat "$apply_dir"/head-name) &&
270
+ onto=$(cat "$apply_dir"/onto) &&
271
+ orig_head=$(cat "$apply_dir"/orig-head) &&
272
+ GIT_QUIET=$(cat "$apply_dir"/quiet)
273
git am -3 --skip --resolvemsg="$RESOLVEMSG" &&
274
move_to_original_branch
275
exit
276
;;
277
--abort)
277
- test -d "$dotest" -o -d "$GIT_DIR"/rebase-apply ||
278
+ test -d "$merge_dir" -o -d "$apply_dir" ||
279
die "No rebase in progress?"
280
281
git rerere clear
282
282
- test -d "$dotest" || dotest="$GIT_DIR"/rebase-apply
283
+ test -d "$merge_dir" || merge_dir="$apply_dir"
284
284
- head_name="$(cat "$dotest"/head-name)" &&
285
+ head_name="$(cat "$merge_dir"/head-name)" &&
286
case "$head_name" in
287
refs/*)
288
git symbolic-ref HEAD $head_name ||
289
die "Could not move back to $head_name"
290
;;
291
esac
291
- git reset --hard $(cat "$dotest/orig-head")
292
- rm -r "$dotest"
292
+ git reset --hard $(cat "$merge_dir/orig-head")
293
+ rm -r "$merge_dir"
294
exit
295
;;
296
--onto)
@@ -388,31 +389,31 @@ test $# -gt 2 && usage
389
390
if test $# -eq 0 && test -z "$rebase_root"
391
then
391
- test -d "$dotest" -o -d "$GIT_DIR"/rebase-apply || usage
392
- test -d "$dotest" -o -f "$GIT_DIR"/rebase-apply/rebasing &&
392
+ test -d "$merge_dir" -o -d "$apply_dir" || usage
393
+ test -d "$merge_dir" -o -f "$apply_dir"/rebasing &&
394
die 'A rebase is in progress, try --continue, --skip or --abort.'
395
fi
396
396
-# Make sure we do not have $GIT_DIR/rebase-apply
397
+# Make sure we do not have $apply_dir or $merge_dir
398
if test -z "$do_merge"
399
then
399
- if mkdir "$GIT_DIR"/rebase-apply 2>/dev/null
400
+ if mkdir "$apply_dir" 2>/dev/null
401
then
401
- rmdir "$GIT_DIR"/rebase-apply
402
+ rmdir "$apply_dir"
403
else
404
echo >&2 '
405
It seems that I cannot create a rebase-apply directory, and
406
I wonder if you are in the middle of patch application or another
407
rebase. If that is not the case, please
407
- rm -fr '"$GIT_DIR"'/rebase-apply
408
+ rm -fr '"$apply_dir"'
409
and run me again. I am stopping in case you still have something
410
valuable there.'
411
exit 1
412
fi
413
else
413
- if test -d "$dotest"
414
+ if test -d "$merge_dir"
415
then
415
- die "previous rebase directory $dotest still exists." \
416
+ die "previous rebase directory $merge_dir still exists." \
417
'Try git rebase (--continue | --abort | --skip)'
418
fi
419
fi
@@ -561,35 +562,35 @@ then
562
git am $git_am_opt --rebasing --resolvemsg="$RESOLVEMSG" &&
563
move_to_original_branch
564
ret=$?
564
- test 0 != $ret -a -d "$GIT_DIR"/rebase-apply &&
565
- echo $head_name > "$GIT_DIR"/rebase-apply/head-name &&
566
- echo $onto > "$GIT_DIR"/rebase-apply/onto &&
567
- echo $orig_head > "$GIT_DIR"/rebase-apply/orig-head &&
568
- echo "$GIT_QUIET" > "$GIT_DIR"/rebase-apply/quiet
565
+ test 0 != $ret -a -d "$apply_dir" &&
566
+ echo $head_name > "$apply_dir/head-name" &&
567
+ echo $onto > "$apply_dir/onto" &&
568
+ echo $orig_head > "$apply_dir/orig-head" &&
569
+ echo "$GIT_QUIET" > "$apply_dir/quiet"
570
exit $ret
571
fi
572
573
# start doing a rebase with git-merge
574
# this is rename-aware if the recursive (default) strategy is used
575
575
-mkdir -p "$dotest"
576
-echo "$onto" > "$dotest/onto"
577
-echo "$onto_name" > "$dotest/onto_name"
576
+mkdir -p "$merge_dir"
577
+echo "$onto" > "$merge_dir/onto"
578
+echo "$onto_name" > "$merge_dir/onto_name"
579
prev_head=$orig_head
579
-echo "$prev_head" > "$dotest/prev_head"
580
-echo "$orig_head" > "$dotest/orig-head"
581
-echo "$head_name" > "$dotest/head-name"
582
-echo "$GIT_QUIET" > "$dotest/quiet"
580
+echo "$prev_head" > "$merge_dir/prev_head"
581
+echo "$orig_head" > "$merge_dir/orig-head"
582
+echo "$head_name" > "$merge_dir/head-name"
583
+echo "$GIT_QUIET" > "$merge_dir/quiet"
584
585
msgnum=0
586
for cmt in `git rev-list --reverse --no-merges "$revisions"`
587
do
588
msgnum=$(($msgnum + 1))
588
- echo "$cmt" > "$dotest/cmt.$msgnum"
589
+ echo "$cmt" > "$merge_dir/cmt.$msgnum"
590
done
591
591
-echo 1 >"$dotest/msgnum"
592
-echo $msgnum >"$dotest/end"
592
+echo 1 >"$merge_dir/msgnum"
593
+echo $msgnum >"$merge_dir/end"
594
595
end=$msgnum
596
msgnum=1