summaryrefslogtreecommitdiff
path: root/git-rebase--preserve-merges.sh
diff options
context:
space:
mode:
authorJohannes Schindelin <johannes.schindelin@gmx.de>2019-05-14 11:22:34 (GMT)
committerJunio C Hamano <gitster@pobox.com>2019-05-15 01:57:32 (GMT)
commit082ef75b7bfc90ac236afbb857a9552a026832b8 (patch)
tree9d98be566e0a0651332e2b5789de13eb68df36a7 /git-rebase--preserve-merges.sh
parentc3c003e722317eacd2adf98d1758d7991cb9834f (diff)
downloadgit-082ef75b7bfc90ac236afbb857a9552a026832b8.zip
git-082ef75b7bfc90ac236afbb857a9552a026832b8.tar.gz
git-082ef75b7bfc90ac236afbb857a9552a026832b8.tar.bz2
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>
Diffstat (limited to 'git-rebase--preserve-merges.sh')
-rw-r--r--git-rebase--preserve-merges.sh55
1 files changed, 55 insertions, 0 deletions
diff --git a/git-rebase--preserve-merges.sh b/git-rebase--preserve-merges.sh
index afbb657..dec90e9 100644
--- a/git-rebase--preserve-merges.sh
+++ b/git-rebase--preserve-merges.sh
@@ -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 '