On Sat, Mar 1, 2014 at 9:53 PM, Nguyễn Thái Ngọc Duy <pclouds@xxxxxxxxx> wrote: > 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. I'm seeing some pretty strange results with this. If I use -1, -2, or -3 then it rebases the expected commits, however, -4 gives me 9 commits, and -5 rebases 35 commits. Am I misunderstanding how this works? I'm testing on a branch based on master with these three patches applied. > 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 -- 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