From: Emily Shaffer <emilyshaffer@google.com>
To: Jeff King <peff@peff.net>
Cc: git@vger.kernel.org
Subject: Re: [PATCH] clone: teach --single-branch and --branch during --recurse
Date: Mon, 27 Jan 2020 14:49:14 -0800 [thread overview]
Message-ID: <20200127224914.GB233139@google.com> (raw)
In-Reply-To: <20200127222019.GA233139@google.com>
On Mon, Jan 27, 2020 at 02:20:19PM -0800, Emily Shaffer wrote:
> On Fri, Jan 17, 2020 at 04:03:19PM -0500, Jeff King wrote:
>
> > (like trying to replace the use of "repo" in Android)
>
> Oops, you saw right through us ;)
>
> > It would make more sense to me to either (or both):
> >
> > - make sure that .gitmodules has enough information about which branch
> > to use for each submodule
>
> Hum. I don't work with them day to day, but aren't we already in that
> state? Is that not what the 'branch' option for each submodule means?
I've been corrected off-list that the 'branch' in .gitmodules is used
during 'git submodule update --remote', but not during 'git submodule
init' or 'git clone --recurse-submodules'. Then, for the problem in
discussion for this thread, it seems like a better choice is something
like 'git clone --recurse-submdoules --use-gitmodules' or whatever we
want to call it - e.g., rather than fetching the branch where the server
knows HEAD, ask the .gitmodules to figure out which branch?
It seems like that ought to live separately from --single-branch. In the
case where you very strictly only want to fetch one branch (not two
branches) I suppose you'd want something like 'git clone
--recurse-submodules --single-branch --branch=mysuperprojectbranch
--use-gitmodules' to make sure that only one branch per repo comes down.
With n submodules of various naming schemas, provenance, etc., I don't
think there's a good case for recursing --branch one way or another; it
seems like filling out some config is the way to go.
I guess we could also teach it to take some input like
--submodule-branch-spec=foo.txt, and/or a multiply provided
--submodule-branch foo=foobranch --submodule-branch bar/baz=bazbranch.
[foo.txt]
foo=foobranch
bar/baz=bazbranch
With that approach, then someone gets a little more flexibility than
relying on what the .gitmodules has set up.
> > - offer an extra option for the default branch to use for any
> > submodules. This is still not general enough to cover all situations
> > (e.g., the bar/baz you showed above), but it at least makes it
> > relatively easy to cover the simple cases, without breaking any
> > existing ones.
>
> Yeah, this is sort of the direction my mind went too - "not
> --branch recursively, but --submodule-branch". But that breaks down when you've
> got a nontrivial number of submodules, at which point you're gonna have
> a hard time unless you've got the .gitmodules configured correctly.
>
>
> Well, as for this patch, let me try it with just --single-branch and see
> whether that works for the case the user reported. I can head back to
> the drawing board if not.
With only half the rework of my patch done, I'm starting to convince
myself it's not actually going to work :) Well, I'll still try and see.
- Emily
next prev parent reply other threads:[~2020-01-27 22:49 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-01-08 23:19 [PATCH] clone: teach --single-branch and --branch during --recurse Emily Shaffer
2020-01-08 23:39 ` Emily Shaffer
2020-01-09 8:11 ` Jeff King
2020-01-16 22:38 ` Emily Shaffer
2020-01-17 21:03 ` Jeff King
2020-01-27 22:20 ` Emily Shaffer
2020-01-27 22:49 ` Emily Shaffer [this message]
2020-01-27 23:10 ` Jeff King
2020-01-28 1:08 ` Emily Shaffer
2020-01-28 1:31 ` Jeff King
2020-01-28 2:10 ` Emily Shaffer
2020-01-27 23:00 ` Jeff King
2020-01-28 22:17 ` [PATCH v2] clone: pass --single-branch during --recurse-submodules Emily Shaffer
2020-01-30 10:23 ` Jeff King
2020-02-21 2:53 ` Emily Shaffer
2020-02-21 3:16 ` Jeff King
2020-02-21 3:10 ` [PATCH v3 0/2] propagate --single-branch during clone --recurse-submodules Emily Shaffer
2020-02-21 3:10 ` [PATCH v3 1/2] submodule--helper: use C99 named initializer Emily Shaffer
2020-02-21 5:26 ` Jeff King
2020-02-22 20:13 ` Junio C Hamano
2020-02-21 3:10 ` [PATCH v3 2/2] clone: pass --single-branch during --recurse-submodules Emily Shaffer
2020-02-21 5:28 ` Jeff King
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=20200127224914.GB233139@google.com \
--to=emilyshaffer@google.com \
--cc=git@vger.kernel.org \
--cc=peff@peff.net \
/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.