Thread (4 messages) flat view 4 messages, 3 authors, 2017-08-18

Re: [bug] Git submodule command interprets switch as argument and switch

From: Stefan Beller <hidden>
Date: 2017-08-18 19:33:32

On Thu, Aug 17, 2017 at 10:16 PM, R0b0t1 [off-list ref] wrote:
The issue is as follows:

R0b0t1@host:~/devel/project$ git submodule add
https://github.com/user/project -f
Cloning into '/home/R0b0t1/devel/project/-f'...

My .gitignore's first line is *, and then I explicitly allow things.
Despite the presence of "project/" in the .gitignore the submodule
command says it is ignored.
That might indicate that another submodule command doesn't
cope with submodule names that look like a common flag.
The "force" flag is interpreted as a flag
and also as the destination directory.

It is possible the argument parsing code for other commands exhibits this error.
Yes, though these other commands are in C, not in shell.
Note that Prathamesh is currently porting the "git submodule"
command to C, which would allow us to fix this bug easily.

Also note that the -f is ambigious, what if the user meant
to have the submodule at path "-f" ? (This issue comes
up in many other commands, for example when a path
and a branch name is accepted, the path of a potentially
deleted file.

To solve this git accepts a double dash, which signals git
that anything after the double dash there are arguments not
to be interpreted as a command line flag.

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