Browse Source

rebase -p -i: handle "no changes" gracefully

Since commit 376ccb8cbb (rebase -i: style
fixes and minor cleanups), unchanged SHA-1s are no longer mapped via
$REWRITTEN.  But the updating phase was not prepared for the old head
not being rewritten.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Johannes Schindelin 17 years ago committed by Junio C Hamano
parent
commit
34454e858d
  1. 7
      git-rebase--interactive.sh
  2. 6
      t/t3404-rebase-interactive.sh

7
git-rebase--interactive.sh

@ -322,7 +322,12 @@ do_next () { @@ -322,7 +322,12 @@ do_next () {
test -f "$DOTEST"/current-commit &&
current_commit=$(cat "$DOTEST"/current-commit) &&
git rev-parse HEAD > "$REWRITTEN"/$current_commit
NEWHEAD=$(cat "$REWRITTEN"/$OLDHEAD)
if test -f "$REWRITTEN"/$OLDHEAD
then
NEWHEAD=$(cat "$REWRITTEN"/$OLDHEAD)
else
NEWHEAD=$OLDHEAD
fi
else
NEWHEAD=$(git rev-parse HEAD)
fi &&

6
t/t3404-rebase-interactive.sh

@ -184,6 +184,12 @@ test_expect_success 'retain authorship when squashing' ' @@ -184,6 +184,12 @@ test_expect_success 'retain authorship when squashing' '
git show HEAD | grep "^Author: Twerp Snog"
'

test_expect_success '-p handles "no changes" gracefully' '
HEAD=$(git rev-parse HEAD) &&
git rebase -i -p HEAD^ &&
test $HEAD = $(git rev-parse HEAD)
'

test_expect_success 'preserve merges with -p' '
git checkout -b to-be-preserved master^ &&
: > unrelated-file &&

Loading…
Cancel
Save