git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
* git-clone ignores submodule.recurse configuration
@ 2017-12-01 18:48 Ralf Thielow
  2017-12-01 21:47 ` Brandon Williams
  0 siblings, 1 reply; 3+ messages in thread
From: Ralf Thielow @ 2017-12-01 18:48 UTC (permalink / raw)
  To: git; +Cc: Stefan Beller

Today I played around a bit with git submodules and noticed
that the very handy configuration "submodule.recurse" is not
working for the git-clone command.

"git help config" tells me that submodule.recurse affects
all commands that have a --recurse-submodules option.
git-clone seems to be an exception which is also mentioned in
a workflow example in Documentation/gitsubmodules.txt that
says:

  # Unlike the other commands below clone still needs
  # its own recurse flag:
  git clone --recurse <URL> <directory>
  cd <directory>

So this seems to be a known issue. Is someone already
working on this or has a plan to do it? Or is there a reason
not doing this for git-clone but for git-pull?

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: git-clone ignores submodule.recurse configuration
  2017-12-01 18:48 git-clone ignores submodule.recurse configuration Ralf Thielow
@ 2017-12-01 21:47 ` Brandon Williams
  2017-12-04 20:02   ` Stefan Beller
  0 siblings, 1 reply; 3+ messages in thread
From: Brandon Williams @ 2017-12-01 21:47 UTC (permalink / raw)
  To: Ralf Thielow; +Cc: git, Stefan Beller

On 12/01, Ralf Thielow wrote:
> Today I played around a bit with git submodules and noticed
> that the very handy configuration "submodule.recurse" is not
> working for the git-clone command.
> 
> "git help config" tells me that submodule.recurse affects
> all commands that have a --recurse-submodules option.
> git-clone seems to be an exception which is also mentioned in
> a workflow example in Documentation/gitsubmodules.txt that
> says:
> 
>   # Unlike the other commands below clone still needs
>   # its own recurse flag:
>   git clone --recurse <URL> <directory>
>   cd <directory>
> 
> So this seems to be a known issue. Is someone already
> working on this or has a plan to do it? Or is there a reason
> not doing this for git-clone but for git-pull?

When we introduced the "submodule.recurse" config we explicitly had it
not work with clone because a recursive clone ends up pulling data from
other sources aside from the URL the user explicitly provides.
Historically there have been a number of security related bugs with
respect to cloning submodules so we felt it was best to require a
recursive clone to be requested explicitly, at least for the time being.

-- 
Brandon Williams

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: git-clone ignores submodule.recurse configuration
  2017-12-01 21:47 ` Brandon Williams
@ 2017-12-04 20:02   ` Stefan Beller
  0 siblings, 0 replies; 3+ messages in thread
From: Stefan Beller @ 2017-12-04 20:02 UTC (permalink / raw)
  To: Brandon Williams; +Cc: Ralf Thielow, git

On Fri, Dec 1, 2017 at 1:47 PM, Brandon Williams <bmwill@google.com> wrote:
> On 12/01, Ralf Thielow wrote:
>> Today I played around a bit with git submodules and noticed
>> that the very handy configuration "submodule.recurse" is not
>> working for the git-clone command.

The rationale here is that submodule.recursive ought to make your
conglomerate of repositories (superproject + some submodules)
look and feel like one giant repository.  Thinking further this sounds
like a user wants to set it globally, hence it may be expected to
work for fresh clones, too.

However at clone time, we don't know which submodules the
user wants. The first submodule recursive switches were an
all or nothing, but I think we need a better selection there.
For fetch there is an "only-those-needed" selection as
"on-demand". Similar for push.

For clone we expected the user wanting to specify which
submodules are interesting:

  git clone --recurse-submodule=<pathspec>

(Note to self: the `[=<pathspec]` part is deep down in the
man page, not in the synopsis, we may want to put that
more prominently there)

Maybe when submodule.recursive is set, we should assume
a pathspec of "." (everything), also see to `submodule.active`,
which is set using the argument from git-clone.

>> "git help config" tells me that submodule.recurse affects
>> all commands that have a --recurse-submodules option.
>> git-clone seems to be an exception which is also mentioned in
>> a workflow example in Documentation/gitsubmodules.txt that
>> says:
>>
>>   # Unlike the other commands below clone still needs
>>   # its own recurse flag:
>>   git clone --recurse <URL> <directory>
>>   cd <directory>
>>
>> So this seems to be a known issue. Is someone already
>> working on this or has a plan to do it? Or is there a reason
>> not doing this for git-clone but for git-pull?
>
> When we introduced the "submodule.recurse" config we explicitly had it
> not work with clone because a recursive clone ends up pulling data from
> other sources aside from the URL the user explicitly provides.
> Historically there have been a number of security related bugs with
> respect to cloning submodules so we felt it was best to require a
> recursive clone to be requested explicitly, at least for the time being.
>
> --
> Brandon Williams

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2017-12-04 20:02 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-12-01 18:48 git-clone ignores submodule.recurse configuration Ralf Thielow
2017-12-01 21:47 ` Brandon Williams
2017-12-04 20:02   ` Stefan Beller

Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).