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>
This commit is contained in:
Dave Olszewski 2010-03-14 21:48:22 -07:00 committed by Junio C Hamano
parent 3a27f415df
commit 2ec33cdd19
2 changed files with 9 additions and 2 deletions

View file

@ -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

View file

@ -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