diff options
author | Brian Gesiak <modocache@gmail.com> | 2014-03-19 20:02:15 +0900 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2014-03-19 10:52:51 -0700 |
commit | 4f4074077fb0c3a2facc61b333337d024aeeebbf (patch) | |
tree | 8a478388eb4a4dccbeac8cf2db8cebf964cc3644 | |
parent | Git 1.9.0 (diff) | |
download | tgif-4f4074077fb0c3a2facc61b333337d024aeeebbf.tar.xz |
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 <git@tim.thechases.com>
Signed-off-by: Brian Gesiak <modocache@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rwxr-xr-x | git-rebase.sh | 4 | ||||
-rwxr-xr-x | t/t3400-rebase.sh | 17 |
2 files changed, 21 insertions, 0 deletions
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 && |