From 4f4074077fb0c3a2facc61b333337d024aeeebbf Mon Sep 17 00:00:00 2001 From: Brian Gesiak Date: Wed, 19 Mar 2014 20:02:15 +0900 Subject: [PATCH] rebase: allow "-" short-hand for the previous branch Teach rebase the same shorthand as checkout and merge to name the branch to rebase the current branch on; that is, that "-" means "the branch we were previously on". Requested-by: Tim Chase Signed-off-by: Brian Gesiak Signed-off-by: Junio C Hamano --- git-rebase.sh | 4 ++++ t/t3400-rebase.sh | 17 +++++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/git-rebase.sh b/git-rebase.sh index 8a3efa2983..658c003c14 100755 --- a/git-rebase.sh +++ b/git-rebase.sh @@ -449,6 +449,10 @@ then test "$fork_point" = auto && fork_point=t ;; *) upstream_name="$1" + if test "$upstream_name" = "-" + then + upstream_name="@{-1}" + fi shift ;; esac diff --git a/t/t3400-rebase.sh b/t/t3400-rebase.sh index 6d94b1fcd9..80e0a951ea 100755 --- a/t/t3400-rebase.sh +++ b/t/t3400-rebase.sh @@ -88,6 +88,23 @@ test_expect_success 'rebase from ambiguous branch name' ' git rebase master ' +test_expect_success 'rebase off of the previous branch using "-"' ' + git checkout master && + git checkout HEAD^ && + git rebase @{-1} >expect.messages && + git merge-base master HEAD >expect.forkpoint && + + git checkout master && + git checkout HEAD^ && + git rebase - >actual.messages && + git merge-base master HEAD >actual.forkpoint && + + test_cmp expect.forkpoint actual.forkpoint && + # the next one is dubious---we may want to say "-", + # instead of @{-1}, in the message + test_i18ncmp expect.messages actual.messages +' + test_expect_success 'rebase a single mode change' ' git checkout master && git branch -D topic && -- 2.11.4.GIT