Skip to content

Commit

Permalink
rebase --interactive: Compute upstream SHA1 before switching branches
Browse files Browse the repository at this point in the history
If the upstream argument to rebase (the first argument) was relative to
HEAD and the name of the branch to rebase (the second argument) was given,
the upstream would have been interpreted relative to the second argument.
In particular, this command

    git rebase -i HEAD topic

would always finish with "Nothing to do". (a1bf91e fixed the same issue
for non-interactive rebase.)

Signed-off-by: Johannes Sixt <johannes.sixt@telecom.at>
Acked-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Johannes Sixt authored and Junio C Hamano committed Jun 3, 2008
1 parent c5833f6 commit 69e66f5
Showing 1 changed file with 3 additions and 4 deletions.
7 changes: 3 additions & 4 deletions git-rebase--interactive.sh
Original file line number Diff line number Diff line change
Expand Up @@ -475,6 +475,9 @@ do

require_clean_work_tree

UPSTREAM=$(git rev-parse --verify "$1") || die "Invalid base"
test -z "$ONTO" && ONTO=$UPSTREAM

if test ! -z "$2"
then
output git show-ref --verify --quiet "refs/heads/$2" ||
Expand All @@ -484,12 +487,8 @@ do
fi

HEAD=$(git rev-parse --verify HEAD) || die "No HEAD?"
UPSTREAM=$(git rev-parse --verify "$1") || die "Invalid base"

mkdir "$DOTEST" || die "Could not create temporary $DOTEST"

test -z "$ONTO" && ONTO=$UPSTREAM

: > "$DOTEST"/interactive || die "Could not mark as interactive"
git symbolic-ref HEAD > "$DOTEST"/head-name 2> /dev/null ||
echo "detached HEAD" > "$DOTEST"/head-name
Expand Down

0 comments on commit 69e66f5

Please sign in to comment.