diff options
-rw-r--r-- | git-rebase--am.sh | 6 | ||||
-rwxr-xr-x | git-rebase--interactive.sh | 5 | ||||
-rw-r--r-- | git-rebase--merge.sh | 5 | ||||
-rwxr-xr-x | git-rebase.sh | 16 |
4 files changed, 16 insertions, 16 deletions
diff --git a/git-rebase--am.sh b/git-rebase--am.sh index 263987c55d..c9604a67d1 100644 --- a/git-rebase--am.sh +++ b/git-rebase--am.sh @@ -26,9 +26,5 @@ git format-patch -k --stdout --full-index --ignore-if-in-upstream \ git am $git_am_opt --rebasing --resolvemsg="$resolvemsg" && move_to_original_branch ret=$? -test 0 != $ret -a -d "$state_dir" && - echo $head_name > "$state_dir/head-name" && - echo $onto > "$state_dir/onto" && - echo $orig_head > "$state_dir/orig-head" && - echo "$GIT_QUIET" > "$state_dir/quiet" +test 0 != $ret -a -d "$state_dir" && write_basic_state exit $ret diff --git a/git-rebase--interactive.sh b/git-rebase--interactive.sh index 4af0bc6c8f..437cc52b24 100755 --- a/git-rebase--interactive.sh +++ b/git-rebase--interactive.sh @@ -707,16 +707,13 @@ orig_head=$(git rev-parse --verify HEAD) || die "No HEAD?" mkdir "$state_dir" || die "Could not create temporary $state_dir" : > "$state_dir"/interactive || die "Could not mark as interactive" -echo "$head_name" > "$state_dir"/head-name - -echo $orig_head > "$state_dir"/head +write_basic_state case "$rebase_root" in '') rm -f "$state_dir"/rebase-root ;; *) : >"$state_dir"/rebase-root ;; esac -echo $onto > "$state_dir"/onto test -z "$strategy" || echo "$strategy" > "$state_dir"/strategy test t = "$verbose" && : > "$state_dir"/verbose if test t = "$preserve_merges" diff --git a/git-rebase--merge.sh b/git-rebase--merge.sh index c04ce8a297..eb0f7bc157 100644 --- a/git-rebase--merge.sh +++ b/git-rebase--merge.sh @@ -127,10 +127,7 @@ esac mkdir -p "$state_dir" echo "$onto_name" > "$state_dir/onto_name" -echo "$head_name" > "$state_dir/head-name" -echo "$onto" > "$state_dir/onto" -echo "$orig_head" > "$state_dir/orig-head" -echo "$GIT_QUIET" > "$state_dir/quiet" +write_basic_state msgnum=0 for cmt in `git rev-list --reverse --no-merges "$revisions"` diff --git a/git-rebase.sh b/git-rebase.sh index 21bb0276e1..5a399aa4cf 100755 --- a/git-rebase.sh +++ b/git-rebase.sh @@ -70,15 +70,25 @@ test "$(git config --bool rebase.autosquash)" = "true" && autosquash=t read_basic_state () { head_name=$(cat "$state_dir"/head-name) && onto=$(cat "$state_dir"/onto) && - if test "$type" = interactive + # We always write to orig-head, but interactive rebase used to write to + # head. Fall back to reading from head to cover for the case that the + # user upgraded git with an ongoing interactive rebase. + if test -f "$state_dir"/orig-head then - orig_head=$(cat "$state_dir"/head) - else orig_head=$(cat "$state_dir"/orig-head) + else + orig_head=$(cat "$state_dir"/head) fi && GIT_QUIET=$(cat "$state_dir"/quiet) } +write_basic_state () { + echo "$head_name" > "$state_dir"/head-name && + echo "$onto" > "$state_dir"/onto && + echo "$orig_head" > "$state_dir"/orig-head && + echo "$GIT_QUIET" > "$state_dir"/quiet +} + output () { case "$verbose" in '') |