Hi,

R0b0t1 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'...

Thanks for reporting.  Confusingly, I think this is intended behavior.
"git help submodule" explains:

        add [-b <branch>] [-f|--force] [--name <name>]
                [--reference <repository>] [--depth <depth>] [--]
                <repository> [<path>]

                Add the given repository as a submodule at the given
                path [etc]

Since the -f comes after <repository>, it is a <path>.

That said, there are a few related things wrong here.

The usage string above says I can put "--" before the <repository> to
make things extra unambiguous.  But when I try that, I get the following
result:

        $ git submodule add -- https://gerrit.googlesource.com/gerrit -f
        Cloning into '/tmp/t/test/-f'...
[...]
        Resolving deltas: 100% (215796/215796), done.
        /usr/lib/git-core/git-submodule: line 261: cd: -f: invalid option
        cd: usage: cd [-L|[-P [-e]] [-@]] [dir]
        Unable to checkout submodule '-f'

If I try to put the "--" between <repository> and <path>, I get another
confusing result:

        $ git submodule add https://gerrit.googlesource.com/gerrit -- -f
        '--' already exists in the index

"git help cli" is supposed to give advice about this kind of thing as
well --- e.g., it gives some sound advice about what form of flags
scripts should use (e.g., to always use the 'stuck' form --name=<name>
instead of --name name).  But it doesn't mention this issue of flags
belonging before other arguments.

Thoughts?

Thanks,
Jonathan

Reply via email to