diff options
author | Dave Olszewski <cxreg@pobox.com> | 2010-03-14 21:48:22 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2010-03-14 23:08:09 -0700 |
commit | 2ec33cdd19bd80308fcef45828e37e79c4b56dc5 (patch) | |
tree | b6349412abf63f39f70dc2fb4c262d72b4f86d23 | |
parent | 3a27f415dfa46bd9e5b693abcac708903d3134f4 (diff) | |
download | git-2ec33cdd19bd80308fcef45828e37e79c4b56dc5.tar.gz git-2ec33cdd19bd80308fcef45828e37e79c4b56dc5.tar.xz |
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>
-rwxr-xr-x | git-rebase--interactive.sh | 2 | ||||
-rwxr-xr-x | t/t3404-rebase-interactive.sh | 9 |
2 files changed, 9 insertions, 2 deletions
diff --git a/git-rebase--interactive.sh b/git-rebase--interactive.sh index 3e4fd1456..d047dcb3e 100755 --- a/git-rebase--interactive.sh +++ b/git-rebase--interactive.sh @@ -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 diff --git a/t/t3404-rebase-interactive.sh b/t/t3404-rebase-interactive.sh index 4e3513709..05708c246 100755 --- a/t/t3404-rebase-interactive.sh +++ b/t/t3404-rebase-interactive.sh @@ -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 |