All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jonathan Nieder <jrnieder@gmail.com>
To: Jens Lehmann <Jens.Lehmann@web.de>
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 14:16:40 -0600	[thread overview]
Message-ID: <20101112201640.GB25248@burratino> (raw)
In-Reply-To: <4CDD9A02.6000507@web.de>

Jens Lehmann wrote:

> No, I think these concepts aren't conflated at all:
> 
> - Category A is handled by .git/config
> 
> - Category B is handled by the .gitmodules file

I meant that the two files currently support the same submodule.*
options.

> 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?

I think we are getting closer to an explanation.  I can look into
adding documentation for this on top when finished.

> 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.

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?

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.

> 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 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.

And again: thanks for doing all this work.  It's inspiring.  (Next step
recursive push?)
Jonathan

  reply	other threads:[~2010-11-12 20:17 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 [this message]
2010-11-12 21:58                     ` Jens Lehmann
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=20101112201640.GB25248@burratino \
    --to=jrnieder@gmail.com \
    --cc=Jens.Lehmann@web.de \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=jon.seymour@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 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.