From: Brandon Williams <bmwill@google.com>
To: Stefan Beller <sbeller@google.com>
Cc: Lars Schneider <larsxschneider@gmail.com>,
Heiko Voigt <hvoigt@hvoigt.net>,
Junio C Hamano <gitster@pobox.com>,
"git@vger.kernel.org" <git@vger.kernel.org>
Subject: Re: [PATCH] pull: respect submodule update configuration
Date: Tue, 22 Aug 2017 11:55:43 -0700 [thread overview]
Message-ID: <20170822185543.GA114773@google.com> (raw)
In-Reply-To: <CAGZ79kbpf-a_ZinPLuPh2Vq629=cQknuLVF-QVwOeae1ZGS2Cw@mail.gmail.com>
On 08/22, Stefan Beller wrote:
> On Tue, Aug 22, 2017 at 7:50 AM, Lars Schneider
> <larsxschneider@gmail.com> 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.
>
When adding '.active' we wanted it to be as flexible as possible. So
you can either use a pathspec with 'submodule.active' to catch multiple
submodules as being active or you can turn on/off individual submodules
with 'submodule.<name>.active' (this has precedent over the more general
'submodule.active' config).
The intent was if a user supplies --recurse-submodules (I believe i
removed the docs for --recursive in order to make the CLI more consistent
with other commands, so --recursive is just a synonym for
--recurse-submodules) then they clearly wanted all the submodules cloned
and checked out. With the '.active' config the way to specify this
is to make 'submodule.active = .'. In the old world every submodule
would need to have its URL copied into the config. This way the config
is kept cleaner as it only has a single entry added.
As stefan mentioned you can specify a value for 'submodule.active' to
take as an arg to --recurse-submodules (the default being '.' or all
submodules) so you can do clever things like group submodules using
attributes, you can even repeat the flag to provided a more complex
pathspec.
Hopefully that answers your question :D
--
Brandon Williams
next prev parent reply other threads:[~2017-08-22 18:55 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-08-16 18:35 Submodule regression in 2.14? Lars Schneider
2017-08-16 18:51 ` Stefan Beller
2017-08-16 18:53 ` Stefan Beller
2017-08-17 21:21 ` Lars Schneider
2017-08-17 21:55 ` Stefan Beller
2017-08-18 2:13 ` Junio C Hamano
2017-08-18 4:02 ` Stefan Beller
2017-08-18 16:50 ` Junio C Hamano
2017-08-18 19:09 ` Stefan Beller
2017-08-19 6:51 ` Junio C Hamano
2017-08-21 16:05 ` Heiko Voigt
2017-08-21 16:42 ` Stefan Beller
2017-08-22 15:33 ` Heiko Voigt
2017-08-22 18:10 ` Stefan Beller
2017-08-25 9:10 ` Heiko Voigt
2017-08-25 16:38 ` Stefan Beller
2017-08-25 16:53 ` Junio C Hamano
2017-08-21 16:48 ` Junio C Hamano
2017-08-22 15:50 ` Heiko Voigt
2017-08-21 16:46 ` Stefan Beller
2017-08-21 22:45 ` Junio C Hamano
2017-08-18 13:12 ` Lars Schneider
2017-08-18 17:16 ` Stefan Beller
2017-08-18 19:10 ` Junio C Hamano
2017-08-18 22:04 ` [PATCH] pull: respect submodule update configuration Stefan Beller
2017-08-18 22:05 ` Stefan Beller
2017-08-19 6:17 ` Junio C Hamano
2017-08-19 6:24 ` Junio C Hamano
2017-08-21 16:20 ` Heiko Voigt
2017-08-21 16:55 ` Stefan Beller
2017-08-21 17:20 ` Lars Schneider
2017-08-21 17:48 ` Stefan Beller
2017-08-21 18:21 ` Brandon Williams
2017-08-21 22:52 ` Junio C Hamano
2017-08-22 14:50 ` Lars Schneider
2017-08-22 17:51 ` Stefan Beller
2017-08-22 18:55 ` Brandon Williams [this message]
2017-08-19 18:24 ` Submodule regression in 2.14? Lars Schneider
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20170822185543.GA114773@google.com \
--to=bmwill@google.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=hvoigt@hvoigt.net \
--cc=larsxschneider@gmail.com \
--cc=sbeller@google.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.