rebase --interactive: Compute upstream SHA1 before switching branches
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>
This commit is contained in:
parent
c5833f6e13
commit
69e66f5500
@ -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" ||
|
||||
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user