Skip to content

Commit

Permalink
rebase: fold git-rebase--common into the -p backend
Browse files Browse the repository at this point in the history
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 <[email protected]>
Signed-off-by: Junio C Hamano <[email protected]>
  • Loading branch information
dscho authored and gitster committed May 15, 2019
1 parent c3c003e commit 082ef75
Show file tree
Hide file tree
Showing 5 changed files with 56 additions and 73 deletions.
1 change: 0 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 122,6 @@
/git-range-diff
/git-read-tree
/git-rebase
/git-rebase--common
/git-rebase--preserve-merges
/git-receive-pack
/git-reflog
Expand Down
1 change: 0 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -624,7 624,6 @@ SCRIPT_SH = git-web--browse.sh

SCRIPT_LIB = git-mergetool--lib
SCRIPT_LIB = git-parse-remote
SCRIPT_LIB = git-rebase--common
SCRIPT_LIB = git-rebase--preserve-merges
SCRIPT_LIB = git-sh-setup
SCRIPT_LIB = git-sh-i18n
Expand Down
3 changes: 1 addition & 2 deletions builtin/rebase.c
Original file line number Diff line number Diff line change
Expand Up @@ -1163,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);
Expand Down
69 changes: 0 additions & 69 deletions git-rebase--common.sh

This file was deleted.

55 changes: 55 additions & 0 deletions git-rebase--preserve-merges.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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 '
Expand Down

0 comments on commit 082ef75

Please sign in to comment.