From: Jens Lehmann <Jens.Lehmann@web.de>
To: Jonathan Nieder <jrnieder@gmail.com>
Cc: Junio C Hamano <gitster@pobox.com>,
Git Mailing List <git@vger.kernel.org>,
Kevin Ballard <kevin@sb.org>, Jon Seymour <jon.seymour@gmail.com>,
Chris Packham <judge.packham@gmail.com>,
Marc Branchaud <marcnarc@xiplink.com>
Subject: Re: [PATCH v3 2/3] Add the 'fetch.recurseSubmodules' config setting
Date: Fri, 12 Nov 2010 22:58:20 +0100 [thread overview]
Message-ID: <4CDDB87C.2030803@web.de> (raw)
In-Reply-To: <20101112201640.GB25248@burratino>
Am 12.11.2010 21:16, schrieb Jonathan Nieder:
> Jens Lehmann wrote:
>> There are people putting lots of large files in submodules for better
>> performance and they almost always never want to fetch (or even stat)
>> them, so (1) is for them and it's cool that their upstream can configure
>> that, avoiding to have every developer to repeat their "obvious" choice
>> after each clone again (and that might only be needed for some submodules,
>> so a repo-wide config doesn't necessarily help them).
>
> Wouldn't (3) work for these people, too?
As I understand there are people who use submodules as something rather
unrelated to the superproject line of development and thus recursive on
demand fetch (and recursive checkout) would not be what they want (and
could take considerable time they don't want to spend).
> I think we are getting closer to an explanation. I can look into
> adding documentation for this on top when finished.
That would be great! I had the same thing in mind so I would be happy
to help you with that if you want.
>> And when you are on a superproject branch actively developing inside a
>> submodule, you may want to increase fetch-activity to fetch all new
>> commits in the submodule even if they aren't referenced in the
>> superproject (yet), as that might be just what your fellow developers
>> are about to do. And the person setting up that branch could do that
>> once for all users so they don't have to repeat it in every clone.
>
> This one seems less reasonable to me. It seems like a way to
> remotely help developers get a nice setup, rather than a declaration
> about the content.
Yeah, I know this example is not as convincing as (1). But it was the
best I could come up with trying to illustrate the "treat-submodules-
as-if-everything-were-in-one-tree" model which some people use.
(And we use this model at my dayjob, but we would be fine setting the
global config option once on every developers computer. But hey, adding
that to the .gitmodules file would get rid of that too ;-)
> Let me take an unrelated example to illustrate what I mean. Some
> projects might want all their developers to use branch.autosetuprebase,
> to avoid confusion since the update hook is going to reject mergy
> history anyway. That seems like a perfectly reasonable desire to me,
> and I'd encourage them to add a script that sets everything up
> following the policies of their project.
>
> Now git could even learn to read a .gitconfig file including settings
> like that one that do not have a security impact. It would make lots
> of people happy, and individuals could override settings they really
> dislike in ~/.gitconfig. Should we do it?
Hmm, I never thought of that. But you are right, this is the same
principle I'm using for .gitmodules.
> I think no, for reasons of intuitiveness and predictability.
>
> On the other hand, scenarios like (1) might mean we have to support
> such things despite that downside.
Yup.
>> And
>> when switching away from that branch all those developers cannot forget
>> to reconfigure to fetch-on-demand, so not having that in .git/config is
>> a plus here too.
>
> Yes, the "read .gitmodules first and then .git/config" is a very nice
> enhancement --- thanks!
You are welcome!
>> You have no other choice for hooks because of security concerns. But I
>> can't see any downsides in leaving upstream *the choice* to configure
>> default submodule behavior. Lots of people - including me - want that for
>> clone and checkout.
>
> There is one setting that it is obvious to me for upstream should be
> able to set:
>
> "these submodules are a necessary part of the project;
> always (at clone time, fetch time, checkout, etc) make
> sure they are available"
>
> I could easily be convinced about others, but there ought to be a use
> case to outweigh the "subtle behavior changing behind my back" syndrome.
I don't have a problem with dropping 3/3 from this series if use case (1)
doesn't convince people. I added it to be consistent with the behavior of
the 'ignore' flag I added earlier and because I it is needed to support
more than one use case for submodules in the same superproject. But we
could wait if someone complains and add it if that happens ... I dunno.
> And again: thanks for doing all this work. It's inspiring. (Next step
> recursive push?)
Thanks a lot! (And nope, it's recursive checkout - thats why I started
recursive fetch, so that I do have something to check out ;-).
Jens
next prev parent reply other threads:[~2010-11-12 21:58 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-11-10 23:53 [PATCH v3 0/3] Teach fetch and pull to recursively fetch submodules Jens Lehmann
2010-11-10 23:54 ` [PATCH v3 1/3] fetch/pull: Add the --recurse-submodules option Jens Lehmann
2010-11-10 23:55 ` [PATCH v3 2/3] Add the 'fetch.recurseSubmodules' config setting Jens Lehmann
2010-11-11 0:02 ` Jonathan Nieder
2010-11-11 8:14 ` Jens Lehmann
2010-11-11 8:27 ` Jonathan Nieder
2010-11-11 18:31 ` Junio C Hamano
2010-11-11 19:00 ` Jonathan Nieder
2010-11-12 11:54 ` Jens Lehmann
2010-11-12 15:52 ` Jonathan Nieder
2010-11-12 19:48 ` Jens Lehmann
2010-11-12 20:16 ` Jonathan Nieder
2010-11-12 21:58 ` Jens Lehmann [this message]
2010-11-12 11:40 ` Jens Lehmann
2010-11-10 23:55 ` [PATCH v3 3/3] Submodules: Add the "fetchRecurseSubmodules" config option Jens Lehmann
2010-11-11 0:05 ` [PATCH v3 0/3] Teach fetch and pull to recursively fetch submodules Jonathan Nieder
2010-11-11 8:18 ` Jens Lehmann
2010-11-12 12:54 ` [PATCH v4 1/3] fetch/pull: Add the --recurse-submodules option Jens Lehmann
2010-11-12 19:54 ` Jonathan Nieder
2010-11-12 20:22 ` Jens Lehmann
2010-12-09 21:16 ` Junio C Hamano
2010-12-09 23:07 ` Jens Lehmann
2010-12-10 17:30 ` Junio C Hamano
2010-12-10 18:03 ` Jens Lehmann
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=4CDDB87C.2030803@web.de \
--to=jens.lehmann@web.de \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=jon.seymour@gmail.com \
--cc=jrnieder@gmail.com \
--cc=judge.packham@gmail.com \
--cc=kevin@sb.org \
--cc=marcnarc@xiplink.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 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 NNTP newsgroup(s).