builtin/show: do not prune by pathspecshow-no-prune
commit974608a44cc9355eea6ae75eb46ab621398a3bb9
authorMichael J Gruber <git@drmicha.warpmail.net>
Thu, 31 Mar 2011 09:08:57 +0000 (31 11:08 +0200)
committerMichael J Gruber <git@grubix.eu>
Fri, 20 Sep 2024 15:55:08 +0000 (20 17:55 +0200)
treeb02c4170830369560fc87cd7c80eca2eec3b2c47
parentd892dcdcdd656c16370b586a56702de7f4047d07
builtin/show: do not prune by pathspec

By design, "git show commit -- path" is not "git show commit:path", and
there is no reason to change that. But "git show commit -- path" simply
returns nothing at all "most of the time" because it prunes by pathspec
even though it does not walk commits. This is pretty useless.

So, turn off commit pruning (but keep diff limiting of course) so that
"git show commit -- path" shows the commit message and the diff that the
commit introduces to path (filtered by path); only the diff will be
empty "most of the time".

As an intended side effect, users mistaking "git show commit -- path"
for "git show commit:path" are automatically reminded that they asked
git to show a commit, not a blob.

In case the user has specified "--do-walk", assume they want the old
behaviour (prune by default).
builtin/log.c