This is "rev-list style", where people can do "git rev-list -3" in addition to "git rev-list HEAD~3". A lot of commands are driven by the revision machinery and also accept this form. This addition to rebase is just for convenience. Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@xxxxxxxxx> --- Documentation/git-rebase.txt | 3 +++ git-rebase.sh | 9 +++++++++ t/t3400-rebase.sh | 6 ++++++ 3 files changed, 18 insertions(+) diff --git a/Documentation/git-rebase.txt b/Documentation/git-rebase.txt index 2a93c64..52c3561 100644 --- a/Documentation/git-rebase.txt +++ b/Documentation/git-rebase.txt @@ -223,6 +223,9 @@ As a special case, you may use "A\...B" as a shortcut for the merge base of A and B if there is exactly one merge base. You can leave out at most one of A and B, in which case it defaults to HEAD. +-<number>:: + Specify <upstream> as "HEAD~<number>". + <upstream>:: Upstream branch to compare against. May be any valid commit, not just an existing branch name. Defaults to the configured diff --git a/git-rebase.sh b/git-rebase.sh index 5f6732b..33face1 100755 --- a/git-rebase.sh +++ b/git-rebase.sh @@ -43,6 +43,7 @@ continue! continue abort! abort and check out the original branch skip! skip current patch and continue edit-todo! edit the todo list during an interactive rebase +-NUM equivalent of HEAD~<NUM> " . git-sh-setup . git-sh-i18n @@ -335,6 +336,9 @@ do --gpg-sign=*) gpg_sign_opt="-S${1#--gpg-sign=}" ;; + -NUM=*) + NUM="${1#-NUM=}" + ;; --) shift break @@ -342,6 +346,11 @@ do esac shift done +if [ -n "$NUM" ] +then + test $# -gt 0 && usage + set -- "$@" "HEAD~$NUM" +fi test $# -gt 2 && usage if test -n "$cmd" && diff --git a/t/t3400-rebase.sh b/t/t3400-rebase.sh index 6d94b1f..11db7ea 100755 --- a/t/t3400-rebase.sh +++ b/t/t3400-rebase.sh @@ -215,4 +215,10 @@ test_expect_success 'rebase commit with an ancient timestamp' ' grep "author .* 34567 +0600$" actual ' +test_expect_success 'rebase -<number>' ' + git reset --hard && + test_must_fail git rebase -2 HEAD^^ && + git rebase -2 +' + test_done -- 1.9.0.40.gaa8c3ea -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html