Code

DWIM 'git show -5' to 'git show --do-walk -5'
authorJonathan Nieder <jrnieder@gmail.com>
Tue, 1 Jun 2010 08:35:49 +0000 (03:35 -0500)
committerJunio C Hamano <gitster@pobox.com>
Wed, 2 Jun 2010 16:15:38 +0000 (09:15 -0700)
commit5853caec96a45ffa7768585acc649dc78eb99354
tree0839036b74911cdde555f90637b02fc43fb841bc
parent225c93a3cac93e8c619e5c8af47d2a781eedcacd
DWIM 'git show -5' to 'git show --do-walk -5'

To show the last two commits with one command, one might try

 1) git show -s master~2..
 2) git show -s ^master~2 master
 3) git show -s master^ master
 4) git show -s -2 master

Choice (3) works because both commits are listed on the command line.
Choices (1) and (2) have worked ever since v1.6.4-rc~3 (Make 'git
show' more useful, 2009-07-13) disabled --no-walk in this case because
there is no other useful meaning for them to have.  Unfortunately, (4)
does not work: it outputs only one commit, because --no-walk stays on.

So disable --no-walk in this case so ‘git show’ and future ‘git
cherry-pick’ can behave as expected.

As a side effect, this unfortunately changes the meaning of
‘git log --oneline --decorate --no-walk -5 --all’: instead of listing
five refs, after this patch that command would list the five most
recent commits.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
revision.c