rebase: fold git-rebase--common into the -p backend
The only remaining scripted part of `git rebase` is the `--preserve-merges` backend. Meaning: there is little reason to keep the "library of common rebase functions" as a separate file. While moving the functions to `git-rebase--preserve-merges.sh`, we also drop the `move_to_original_branch` function that is no longer used. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
68b54f669d
commit
5efed0ecf9
1
.gitignore
vendored
1
.gitignore
vendored
@ -122,7 +122,6 @@
|
|||||||
/git-range-diff
|
/git-range-diff
|
||||||
/git-read-tree
|
/git-read-tree
|
||||||
/git-rebase
|
/git-rebase
|
||||||
/git-rebase--common
|
|
||||||
/git-rebase--preserve-merges
|
/git-rebase--preserve-merges
|
||||||
/git-receive-pack
|
/git-receive-pack
|
||||||
/git-reflog
|
/git-reflog
|
||||||
|
1
Makefile
1
Makefile
@ -624,7 +624,6 @@ SCRIPT_SH += git-web--browse.sh
|
|||||||
|
|
||||||
SCRIPT_LIB += git-mergetool--lib
|
SCRIPT_LIB += git-mergetool--lib
|
||||||
SCRIPT_LIB += git-parse-remote
|
SCRIPT_LIB += git-parse-remote
|
||||||
SCRIPT_LIB += git-rebase--common
|
|
||||||
SCRIPT_LIB += git-rebase--preserve-merges
|
SCRIPT_LIB += git-rebase--preserve-merges
|
||||||
SCRIPT_LIB += git-sh-setup
|
SCRIPT_LIB += git-sh-setup
|
||||||
SCRIPT_LIB += git-sh-i18n
|
SCRIPT_LIB += git-sh-i18n
|
||||||
|
@ -1163,8 +1163,7 @@ static int run_specific_rebase(struct rebase_options *opts, enum action action)
|
|||||||
}
|
}
|
||||||
|
|
||||||
strbuf_addf(&script_snippet,
|
strbuf_addf(&script_snippet,
|
||||||
". git-sh-setup && . git-rebase--common &&"
|
". git-sh-setup && . %s && %s", backend, backend_func);
|
||||||
" . %s && %s", backend, backend_func);
|
|
||||||
argv[0] = script_snippet.buf;
|
argv[0] = script_snippet.buf;
|
||||||
|
|
||||||
status = run_command_v_opt(argv, RUN_USING_SHELL);
|
status = run_command_v_opt(argv, RUN_USING_SHELL);
|
||||||
|
@ -1,69 +0,0 @@
|
|||||||
|
|
||||||
resolvemsg="
|
|
||||||
$(gettext 'Resolve all conflicts manually, mark them as resolved with
|
|
||||||
"git add/rm <conflicted_files>", then run "git rebase --continue".
|
|
||||||
You can instead skip this commit: run "git rebase --skip".
|
|
||||||
To abort and get back to the state before "git rebase", run "git rebase --abort".')
|
|
||||||
"
|
|
||||||
|
|
||||||
write_basic_state () {
|
|
||||||
echo "$head_name" > "$state_dir"/head-name &&
|
|
||||||
echo "$onto" > "$state_dir"/onto &&
|
|
||||||
echo "$orig_head" > "$state_dir"/orig-head &&
|
|
||||||
test t = "$GIT_QUIET" && : > "$state_dir"/quiet
|
|
||||||
test t = "$verbose" && : > "$state_dir"/verbose
|
|
||||||
test -n "$strategy" && echo "$strategy" > "$state_dir"/strategy
|
|
||||||
test -n "$strategy_opts" && echo "$strategy_opts" > \
|
|
||||||
"$state_dir"/strategy_opts
|
|
||||||
test -n "$allow_rerere_autoupdate" && echo "$allow_rerere_autoupdate" > \
|
|
||||||
"$state_dir"/allow_rerere_autoupdate
|
|
||||||
test -n "$gpg_sign_opt" && echo "$gpg_sign_opt" > "$state_dir"/gpg_sign_opt
|
|
||||||
test -n "$signoff" && echo "$signoff" >"$state_dir"/signoff
|
|
||||||
test -n "$reschedule_failed_exec" && : > "$state_dir"/reschedule-failed-exec
|
|
||||||
}
|
|
||||||
|
|
||||||
apply_autostash () {
|
|
||||||
if test -f "$state_dir/autostash"
|
|
||||||
then
|
|
||||||
stash_sha1=$(cat "$state_dir/autostash")
|
|
||||||
if git stash apply $stash_sha1 >/dev/null 2>&1
|
|
||||||
then
|
|
||||||
echo "$(gettext 'Applied autostash.')" >&2
|
|
||||||
else
|
|
||||||
git stash store -m "autostash" -q $stash_sha1 ||
|
|
||||||
die "$(eval_gettext "Cannot store \$stash_sha1")"
|
|
||||||
gettext 'Applying autostash resulted in conflicts.
|
|
||||||
Your changes are safe in the stash.
|
|
||||||
You can run "git stash pop" or "git stash drop" at any time.
|
|
||||||
' >&2
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
move_to_original_branch () {
|
|
||||||
case "$head_name" in
|
|
||||||
refs/*)
|
|
||||||
message="rebase finished: $head_name onto $onto"
|
|
||||||
git update-ref -m "$message" \
|
|
||||||
$head_name $(git rev-parse HEAD) $orig_head &&
|
|
||||||
git symbolic-ref \
|
|
||||||
-m "rebase finished: returning to $head_name" \
|
|
||||||
HEAD $head_name ||
|
|
||||||
die "$(eval_gettext "Could not move back to \$head_name")"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
}
|
|
||||||
|
|
||||||
output () {
|
|
||||||
case "$verbose" in
|
|
||||||
'')
|
|
||||||
output=$("$@" 2>&1 )
|
|
||||||
status=$?
|
|
||||||
test $status != 0 && printf "%s\n" "$output"
|
|
||||||
return $status
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
"$@"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
}
|
|
@ -77,6 +77,61 @@ rewritten_pending="$state_dir"/rewritten-pending
|
|||||||
# and leaves CR at the end instead.
|
# and leaves CR at the end instead.
|
||||||
cr=$(printf "\015")
|
cr=$(printf "\015")
|
||||||
|
|
||||||
|
resolvemsg="
|
||||||
|
$(gettext 'Resolve all conflicts manually, mark them as resolved with
|
||||||
|
"git add/rm <conflicted_files>", then run "git rebase --continue".
|
||||||
|
You can instead skip this commit: run "git rebase --skip".
|
||||||
|
To abort and get back to the state before "git rebase", run "git rebase --abort".')
|
||||||
|
"
|
||||||
|
|
||||||
|
write_basic_state () {
|
||||||
|
echo "$head_name" > "$state_dir"/head-name &&
|
||||||
|
echo "$onto" > "$state_dir"/onto &&
|
||||||
|
echo "$orig_head" > "$state_dir"/orig-head &&
|
||||||
|
test t = "$GIT_QUIET" && : > "$state_dir"/quiet
|
||||||
|
test t = "$verbose" && : > "$state_dir"/verbose
|
||||||
|
test -n "$strategy" && echo "$strategy" > "$state_dir"/strategy
|
||||||
|
test -n "$strategy_opts" && echo "$strategy_opts" > \
|
||||||
|
"$state_dir"/strategy_opts
|
||||||
|
test -n "$allow_rerere_autoupdate" && echo "$allow_rerere_autoupdate" > \
|
||||||
|
"$state_dir"/allow_rerere_autoupdate
|
||||||
|
test -n "$gpg_sign_opt" && echo "$gpg_sign_opt" > "$state_dir"/gpg_sign_opt
|
||||||
|
test -n "$signoff" && echo "$signoff" >"$state_dir"/signoff
|
||||||
|
test -n "$reschedule_failed_exec" && : > "$state_dir"/reschedule-failed-exec
|
||||||
|
}
|
||||||
|
|
||||||
|
apply_autostash () {
|
||||||
|
if test -f "$state_dir/autostash"
|
||||||
|
then
|
||||||
|
stash_sha1=$(cat "$state_dir/autostash")
|
||||||
|
if git stash apply $stash_sha1 >/dev/null 2>&1
|
||||||
|
then
|
||||||
|
echo "$(gettext 'Applied autostash.')" >&2
|
||||||
|
else
|
||||||
|
git stash store -m "autostash" -q $stash_sha1 ||
|
||||||
|
die "$(eval_gettext "Cannot store \$stash_sha1")"
|
||||||
|
gettext 'Applying autostash resulted in conflicts.
|
||||||
|
Your changes are safe in the stash.
|
||||||
|
You can run "git stash pop" or "git stash drop" at any time.
|
||||||
|
' >&2
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
output () {
|
||||||
|
case "$verbose" in
|
||||||
|
'')
|
||||||
|
output=$("$@" 2>&1 )
|
||||||
|
status=$?
|
||||||
|
test $status != 0 && printf "%s\n" "$output"
|
||||||
|
return $status
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
"$@"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
strategy_args=${strategy:+--strategy=$strategy}
|
strategy_args=${strategy:+--strategy=$strategy}
|
||||||
test -n "$strategy_opts" &&
|
test -n "$strategy_opts" &&
|
||||||
eval '
|
eval '
|
||||||
|
Loading…
Reference in New Issue
Block a user