Thread (1 message) 1 message, 1 author, 2016-06-15

Re: [PATCH 4/4] builtin/show: do not prune by pathspec

From: Junio C Hamano <hidden>
Date: 2016-06-15 22:50:57

Michael J Gruber [off-list ref] writes:
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.
Hmm, I'm very tempted to suggest throwing it into the "don't do it then"
basket.
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).
Compared to "--do-walk", "git show HEAD~5.." would be a much more common
way to trigger it, and is a more appropriate justification why you made
the non-pruning conditional.
quoted hunk
Signed-off-by: Michael J Gruber <redacted>
---
 builtin/log.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/builtin/log.c b/builtin/log.c
index 916019c..474a76d 100644
--- a/builtin/log.c
+++ b/builtin/log.c
@@ -420,6 +420,8 @@ int cmd_show(int argc, const char **argv, const char *prefix)
 	opt.def = "HEAD";
 	opt.tweak = show_rev_tweak_rev;
 	cmd_log_init(argc, argv, prefix, &rev, &opt);
+	if (rev.no_walk)
+		rev.prune = 0;
 
 	count = rev.pending.nr;
 	objects = rev.pending.objects;
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help