git-rev-parse: pass on "--" flag when required

Subsystems: the rest

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

git-rev-parse: pass on "--" flag when required

From: Linus Torvalds <torvalds@osdl.org>
Date: 2016-06-15 22:42:09

If rev-parse output includes both flags and files, we should pass on any 
"--" marker we see, so that the end result can also tell the difference 
between a flag and a filename that begins with '-'.

Signed-off-by: Linus Torvalds <torvalds@osdl.org>
---
diff --git a/rev-parse.c b/rev-parse.c
index 85230df..9ae2512 100644
--- a/rev-parse.c
+++ b/rev-parse.c
@@ -174,6 +174,9 @@ int main(int argc, char **argv)
 		if (*arg == '-') {
 			if (!strcmp(arg, "--")) {
 				as_is = 1;
+				/* Pass on the "--" if we show anything but files.. */
+				if (filter & (DO_FLAGS | DO_REVS))
+					show_file(arg);
 				continue;
 			}
 			if (!strcmp(arg, "--default")) {

Re: git-rev-parse: pass on "--" flag when required

From: Linus Torvalds <torvalds@osdl.org>
Date: 2016-06-15 22:42:09


On Thu, 20 Oct 2005, Linus Torvalds wrote:
If rev-parse output includes both flags and files, we should pass on any 
"--" marker we see, so that the end result can also tell the difference 
between a flag and a filename that begins with '-'.
Btw, if it wasn't obvious, this is also required to keep files and revs 
separate.

I don't think we have anything that cares right now, but I'm working on 
trying to get "git-rev-list" to limit its output to the files given on the 
command line, and then I want to be able to do

	gitk -- rev-list.c

and in my version of git-rev-list, the "--" is required to separate out 
the revs from the names (since otherwise it's just too error-prone).

That requires that git-rev-parse not only honor "--", but pass it through 
when the output can contain both revs/flags _and_ filenames.

			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