gitk from subdirectory

Subsystems: the rest

2 messages, 2 authors, 2016-06-15 · open the first message on its own page

gitk from subdirectory

From: Junio C Hamano <hidden>
Date: 2016-06-15 22:43:31

Since commit cdaee5db165ba8bae8d3b524950e61666fc36a84 (gitk:
Improve handling of -- and ambiguous arguments), running gitk
from a subdirectory limits the displayed history with the
current directory as the path limiter, because it always passes
the "--" to the underlying git-rev-list.

One obvious side effect of this is if you create a new directory
and cd to it, gitk will not show anything because no commit in
the history has touched the path you are currently in.

I am wondering if this was intended behaviour change.  I think
it makes sense to want an easy way to say "what changed stuff in
the directory I am in?" because presumably you are there because
you are interested in stuff in there.  But if you hard code "--"
it is not easy to disable that and get the global log.

You always can say "gitk -- ." to limit commits to the current
directory, so it might have been just an oversight.  In which
case, the attached patch may be needed to restore the old
behaviour.

Signed-off-by: Junio C Hamano <redacted>
---
 gitk |    7 ++++++-
 1 files changed, 6 insertions(+), 1 deletions(-)
diff --git a/gitk b/gitk
index 300fdce..b95b313 100755
--- a/gitk
+++ b/gitk
@@ -92,8 +92,13 @@ proc start_rev_list {view} {
 	set order "--date-order"
     }
     if {[catch {
+	if {[llength $viewfiles($view)] == 0} {
+	    set rlpaths {}
+	} else {
+	    set rlpaths [list "--" $viewfiles($view)]
+	}
 	set fd [open [concat | git log -z --pretty=raw $order --parents \
-			 --boundary $viewargs($view) "--" $viewfiles($view)] r]
+			 --boundary $viewargs($view) $rlpaths] r]
     } err]} {
 	error_popup "Error executing git rev-list: $err"
 	exit 1

Re: gitk from subdirectory

From: Linus Torvalds <torvalds@linux-foundation.org>
Date: 2016-06-15 22:43:31


On Thu, 30 Aug 2007, Junio C Hamano wrote:
I am wondering if this was intended behaviour change.  I think
it makes sense to want an easy way to say "what changed stuff in
the directory I am in?" because presumably you are there because
you are interested in stuff in there.  But if you hard code "--"
it is not easy to disable that and get the global log.
Hmm. My reaction to this would be that it was a mistake to have a 
difference between 

	git log --

and

	git log

and that we should instead fix this at the argument parsing level. 

And then anybody who depended on the old "--" behaviour can just add a "." 
at the end.

That way there are no special cases.

I realize that the "--" behaviour of git log was intentional, but seeing 
what it results in I think the intention was good, but stupid.

		Linus
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help