зеркало из https://github.com/microsoft/git.git
Merge 'drop-rebase--am.sh'
This topic branch cleans up some left-overs that were forgotten when removing the scripted `git rebase`. As these patches are based on top of v2.22.0-rc1 (which *did* drop the scripted `git-rebase.sh`), instead of v2.21.0 (on which the current `master` of Git for Windows is based, and which did *not* yet drop the scripted `git rebase`) it does not make sense to try to backport them to `master`. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
This commit is contained in:
Коммит
b2e736fc27
|
@ -122,9 +122,6 @@
|
|||
/git-range-diff
|
||||
/git-read-tree
|
||||
/git-rebase
|
||||
/git-rebase--am
|
||||
/git-rebase--common
|
||||
/git-rebase--interactive
|
||||
/git-rebase--preserve-merges
|
||||
/git-receive-pack
|
||||
/git-reflog
|
||||
|
|
2
Makefile
2
Makefile
|
@ -624,8 +624,6 @@ SCRIPT_SH += git-web--browse.sh
|
|||
|
||||
SCRIPT_LIB += git-mergetool--lib
|
||||
SCRIPT_LIB += git-parse-remote
|
||||
SCRIPT_LIB += git-rebase--am
|
||||
SCRIPT_LIB += git-rebase--common
|
||||
SCRIPT_LIB += git-rebase--preserve-merges
|
||||
SCRIPT_LIB += git-sh-setup
|
||||
SCRIPT_LIB += git-sh-i18n
|
||||
|
|
|
@ -1153,10 +1153,6 @@ static int run_specific_rebase(struct rebase_options *opts, enum action action)
|
|||
}
|
||||
|
||||
switch (opts->type) {
|
||||
case REBASE_AM:
|
||||
backend = "git-rebase--am";
|
||||
backend_func = "git_rebase__am";
|
||||
break;
|
||||
case REBASE_PRESERVE_MERGES:
|
||||
backend = "git-rebase--preserve-merges";
|
||||
backend_func = "git_rebase__preserve_merges";
|
||||
|
@ -1167,8 +1163,7 @@ static int run_specific_rebase(struct rebase_options *opts, enum action action)
|
|||
}
|
||||
|
||||
strbuf_addf(&script_snippet,
|
||||
". git-sh-setup && . git-rebase--common &&"
|
||||
" . %s && %s", backend, backend_func);
|
||||
". git-sh-setup && . %s && %s", backend, backend_func);
|
||||
argv[0] = script_snippet.buf;
|
||||
|
||||
status = run_command_v_opt(argv, RUN_USING_SHELL);
|
||||
|
|
|
@ -1,85 +0,0 @@
|
|||
# This shell script fragment is sourced by git-rebase to implement
|
||||
# its default, fast, patch-based, non-interactive mode.
|
||||
#
|
||||
# Copyright (c) 2010 Junio C Hamano.
|
||||
#
|
||||
|
||||
git_rebase__am () {
|
||||
|
||||
case "$action" in
|
||||
continue)
|
||||
git am --resolved --resolvemsg="$resolvemsg" \
|
||||
${gpg_sign_opt:+"$gpg_sign_opt"} &&
|
||||
move_to_original_branch
|
||||
return
|
||||
;;
|
||||
skip)
|
||||
git am --skip --resolvemsg="$resolvemsg" &&
|
||||
move_to_original_branch
|
||||
return
|
||||
;;
|
||||
show-current-patch)
|
||||
exec git am --show-current-patch
|
||||
;;
|
||||
esac
|
||||
|
||||
if test -z "$rebase_root"
|
||||
# this is now equivalent to ! -z "$upstream"
|
||||
then
|
||||
revisions=$upstream...$orig_head
|
||||
else
|
||||
revisions=$onto...$orig_head
|
||||
fi
|
||||
|
||||
ret=0
|
||||
rm -f "$GIT_DIR/rebased-patches"
|
||||
|
||||
git format-patch -k --stdout --full-index --cherry-pick --right-only \
|
||||
--src-prefix=a/ --dst-prefix=b/ --no-renames --no-cover-letter \
|
||||
--pretty=mboxrd --topo-order \
|
||||
$git_format_patch_opt \
|
||||
"$revisions" ${restrict_revision+^$restrict_revision} \
|
||||
>"$GIT_DIR/rebased-patches"
|
||||
ret=$?
|
||||
|
||||
if test 0 != $ret
|
||||
then
|
||||
rm -f "$GIT_DIR/rebased-patches"
|
||||
case "$head_name" in
|
||||
refs/heads/*)
|
||||
git checkout -q "$head_name"
|
||||
;;
|
||||
*)
|
||||
git checkout -q "$orig_head"
|
||||
;;
|
||||
esac
|
||||
|
||||
cat >&2 <<-EOF
|
||||
|
||||
git encountered an error while preparing the patches to replay
|
||||
these revisions:
|
||||
|
||||
$revisions
|
||||
|
||||
As a result, git cannot rebase them.
|
||||
EOF
|
||||
return $ret
|
||||
fi
|
||||
|
||||
git am $git_am_opt --rebasing --resolvemsg="$resolvemsg" \
|
||||
--patch-format=mboxrd \
|
||||
$allow_rerere_autoupdate \
|
||||
${gpg_sign_opt:+"$gpg_sign_opt"} <"$GIT_DIR/rebased-patches"
|
||||
ret=$?
|
||||
|
||||
rm -f "$GIT_DIR/rebased-patches"
|
||||
|
||||
if test 0 != $ret
|
||||
then
|
||||
test -d "$state_dir" && write_basic_state
|
||||
return $ret
|
||||
fi
|
||||
|
||||
move_to_original_branch
|
||||
|
||||
}
|
|
@ -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.
|
||||
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}
|
||||
test -n "$strategy_opts" &&
|
||||
eval '
|
||||
|
|
|
@ -767,7 +767,7 @@ static int parse_key_value_squoted(char *buf, struct string_list *list)
|
|||
* GIT_AUTHOR_DATE='$author_date'
|
||||
*
|
||||
* where $author_name, $author_email and $author_date are quoted. We are strict
|
||||
* with our parsing, as the file was meant to be eval'd in the old
|
||||
* with our parsing, as the file was meant to be eval'd in the now-removed
|
||||
* git-am.sh/git-rebase--interactive.sh scripts, and thus if the file differs
|
||||
* from what this function expects, it is better to bail out than to do
|
||||
* something that the user does not expect.
|
||||
|
|
|
@ -285,7 +285,7 @@ EOF
|
|||
test_cmp From_.msg out
|
||||
'
|
||||
|
||||
test_expect_success 'rebase--am.sh and --show-current-patch' '
|
||||
test_expect_success 'rebase --am and --show-current-patch' '
|
||||
test_create_repo conflict-apply &&
|
||||
(
|
||||
cd conflict-apply &&
|
||||
|
|
Загрузка…
Ссылка в новой задаче