On Tue, Aug 22, 2017 at 7:50 AM, Lars Schneider
<[email protected]> wrote:
>
> OK. I change my scripts to use ".active" and it seems to work nicely.
>
> I noticed one oddity, though:
>
> If I clone a repo using `git clone --recursive <url>` then the local
> Git config of the repo gets the following entry:
>
> [submodule]
> active = .
bb62e0a99f (clone: teach --recurse-submodules to optionally take a
pathspec, 2017-03-17) makes it clear that this is intentional for
--recurse-submodules, but doesn't exactly state that --recurse will
behave the same. The idea here is that at clone time you can already
give
git clone --recurse=:(exclude)sub0 <url> <path>
and have your desired set of submodules there.
Combined with the changes in the attr system, b0db704652
(pathspec: allow querying for attributes, 2017-03-13)
you could make up things like this:
$ cat .gitattributes
/sub0 label0
/sub1
/sub2 label1 label2
/sub3 label1
/platform-specifc-subs/* label1 label2
and then get a clone via
git clone --recurse=:(attr:label2). <url> <path>
for example. The labeling via the attributes allows for
complex patterns, but a relatively easy command line, that you
can share with coworkers.
> Is this intentional? Something in the git/git test harness seems to prevent
> that. I was not able to write a test to replicate the issue.
>
> Any idea?
I do not seem to understand the perceived bug?
The setting of submodule.active=<pathspec> seems intentional to me,
but how would you not reproduce it? Maybe Brandon has an idea.
Thanks,
Stefan