git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Nigel Magnay" <nigel.magnay@gmail.com>
To: "Johannes Sixt" <j.sixt@viscovery.net>
Cc: "Git Mailing List" <git@vger.kernel.org>
Subject: Re: git submodules and commit
Date: Wed, 16 Jul 2008 12:02:19 +0100	[thread overview]
Message-ID: <320075ff0807160402s7429291ela288b42d99c1ec53@mail.gmail.com> (raw)
In-Reply-To: <487DD1C7.3070701@viscovery.net>

On Wed, Jul 16, 2008 at 11:47 AM, Johannes Sixt <j.sixt@viscovery.net> wrote:
> Nigel Magnay schrieb:
>> For me, in some really high proportion of cases, I think I want 'git
>> commit' to mean 'commit to any child repositories, any sibling
>> repositories, and any parent repositories (updating the submodule sha1
>> as appropriate). In other words, 'pretend like the whole thing is one
>> big repo'.
>
> And I think that this is the problem: If this way of commiting your
> changes is *required* in the *majority* of cases, then you are IMO outside
> the intended use-case of submodules. You are better served by really
> making this one big repo.
>

Hm - then my contention is that the scope of submodules needs to be
expanded (or something needs to be built on top).

One-big-repo doesn't fly - > 75% of the code volume (the 'other'
modules) are shared between multiple projects. In SVN these are just
svn:externals (which has it's own imperfections).

I think it's a common usecase. You have 'shared' modules and
'project-specific' modules[*]. The 'shared' modules you hope don't
change very much, but they are part of the overall project
configuration - it's really nice that you can branch so easily in git,
then get the module owner to merge those changes into the next release
at their leisure. The superproject then represents the correct
configuration of submodule trees to make a valid build.

The machinery has everything that's required, it's just the user
experience sucks :(

[*] actually there's more subtlety, there's 'shared', 'product' and
'project', so some 'specific' modules are potentially re-shared
elsewhere.
> IMO, submodules are to be used if you can afford to advance parent project
> and submodules at different paces; i.e. if the parent project can work
> with newer versions of the submodules (and possibly in a degraded mode
> even with outdated versions).
>
> -- Hannes
>

  reply	other threads:[~2008-07-16 11:03 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <320075ff0807160331j30e8f832m4de3e3bbe9c26801@mail.gmail.com>
2008-07-16 10:32 ` git submodules and commit Nigel Magnay
2008-07-16 10:47   ` Johannes Sixt
2008-07-16 11:02     ` Nigel Magnay [this message]
2008-07-16 11:35       ` Johannes Sixt
2008-07-16 12:11         ` Petr Baudis
2008-07-16 12:48         ` Nigel Magnay
2008-07-16 13:38           ` Johannes Sixt
2008-07-16 14:03             ` Nigel Magnay
2008-07-16 14:17               ` Petr Baudis
2008-07-16 14:31                 ` Nigel Magnay
2008-07-16 15:43   ` Avery Pennarun
2008-07-17  9:47     ` Nigel Magnay
2008-07-17 15:12       ` Avery Pennarun
2008-07-18 16:11     ` Ping Yin

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=320075ff0807160402s7429291ela288b42d99c1ec53@mail.gmail.com \
    --to=nigel.magnay@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=j.sixt@viscovery.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 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).