Browse Source

rebase--interactive: don't require what's rebased to be a branch

git rebase allows you to specify a non-branch commit-ish as the "branch"
argument, which leaves HEAD detached when it's finished.  This is
occasionally useful, and this patch brings the same functionality to git
rebase --interactive.

Signed-off-by: Dave Olszewski <cxreg@pobox.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Dave Olszewski 15 years ago committed by Junio C Hamano
parent
commit
2ec33cdd19
  1. 2
      git-rebase--interactive.sh
  2. 9
      t/t3404-rebase-interactive.sh

2
git-rebase--interactive.sh

@ -783,8 +783,6 @@ first and then run 'git rebase --continue' again." @@ -783,8 +783,6 @@ first and then run 'git rebase --continue' again."

if test ! -z "$1"
then
output git show-ref --verify --quiet "refs/heads/$1" ||
die "Invalid branchname: $1"
output git checkout "$1" ||
die "Could not checkout $1"
fi

9
t/t3404-rebase-interactive.sh

@ -553,4 +553,13 @@ test_expect_success 'reword' ' @@ -553,4 +553,13 @@ test_expect_success 'reword' '
git show HEAD~2 | grep "C changed"
'

test_expect_success 'rebase while detaching HEAD' '
git symbolic-ref HEAD &&
grandparent=$(git rev-parse HEAD~2) &&
test_tick &&
FAKE_LINES="2 1" git rebase -i HEAD~2 HEAD^0 &&
test $grandparent = $(git rev-parse HEAD~2) &&
test_must_fail git symbolic-ref HEAD
'

test_done

Loading…
Cancel
Save