From: "Avery Pennarun" <apenwarr@gmail.com>
To: "Pierre Habouzit" <madcoder@debian.org>,
"Nigel Magnay" <nigel.magnay@gmail.com>,
"Git ML" <git@vger.kernel.org>
Subject: Re: git submodules
Date: Mon, 28 Jul 2008 17:40:22 -0400 [thread overview]
Message-ID: <32541b130807281440v64f3cb9ci50cf6d16be4f2f82@mail.gmail.com> (raw)
In-Reply-To: <20080728205923.GC10409@artemis.madism.org>
On 7/28/08, Pierre Habouzit <madcoder@debian.org> wrote:
> On Mon, Jul 28, 2008 at 08:55:45PM +0000, Pierre Habouzit wrote:
> > That too indeed (the "easier to clone" bit). OTOH, I don't like the
> > .git/submodules idea a lot, if you mean to put a usual $GIT_DIR layout
> > inside of it. With what I propose, you find objects for all your
> > super/sub-modules in the usual store, which eases many things.
> > Especially, I believe that when you replace a subdirectory of a project
> > with a submodule, git-blame could benefit quite a lot from this to be
> > able to glue history back through the submodule limits, without having
> > to refactor a _lot_ of code: it would merely have to dereference so
> > called "gitlinks" to the commit then tree, hence twice, and just do its
> > usual work, with your proposal, we still rely on having to recurse in
> > subdirectories which requires more boilerplate code.
>
> And of _course_ this is also true for git-log, which is like 10x as
> important for me (like I don't remember if I used git-blame this year,
> whereas I used git-log in the last 10 minutes ;p)
I don't think you're going to get away with *not* having a separate
.git directory for each submodule. You'll just plain lose almost all
the features of submodules if you try to do that.
Most importantly in my case, my submodules (libraries shared between
apps) have a very different branching structure than my supermodules.
It wouldn't be particularly meaningful to force them to use the same
branch names.
Further, if you don't have a separate .git directory for each
submodule, you can't *switch* branches on the submodule independently
of the supermodule in any obvious way. This is also useful; I might
want to test updating to the latest master of my submodule, see if it
still works with my supermodule, and if so, commit the new gitlink in
the supermodule. This is a very common workflow for me.
On the other hand, your thought about combining the "git log" messages
is quite interesting. That *is* something I'd benefit from, along
with being able to git-bisect across submodules. If I'm in the
supermodule, I want to see *all* the commits that might have changed
in my application, not just the ones in the supermodule itself. I
suspect this isn't simple at all to implement, however, as you'd have
to look inside the file tree of a given commit in order to find
whether any submodule links have changed in that commit. It's
unfortunate that submodules involve a commit->tree->commit link
structure.
> One irritating problem with submodules, is
> that when someone else commited, and that you git submodule update,
> you're on a detached head. Absolutely horrible.
I think that roughly everyone agrees with the above statement by now.
It would also be trivial to fix it, if only we knew what "fix" means.
So far, I haven't seen any good suggestions for what branch name to
use automatically in a submodule, and believe me, I've been looking
for one :)
Have fun,
Avery
next prev parent reply other threads:[~2008-07-28 21:41 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-07-28 16:20 git submodules Pierre Habouzit
2008-07-28 16:23 ` Pierre Habouzit
2008-07-28 20:23 ` Nigel Magnay
2008-07-28 20:55 ` Pierre Habouzit
2008-07-28 20:59 ` Pierre Habouzit
2008-07-28 21:40 ` Avery Pennarun [this message]
2008-07-28 22:03 ` Pierre Habouzit
2008-07-28 22:26 ` Jakub Narebski
2008-07-28 22:41 ` Junio C Hamano
2008-08-17 20:13 ` Pierre Habouzit
2008-08-17 22:54 ` Avery Pennarun
2008-08-17 23:08 ` Junio C Hamano
2008-08-18 0:46 ` Pierre Habouzit
2008-07-28 22:32 ` Avery Pennarun
2008-07-28 23:12 ` Pierre Habouzit
2008-07-29 5:51 ` Benjamin Collins
2008-07-29 6:04 ` Shawn O. Pearce
2008-07-29 8:18 ` Nigel Magnay
2008-07-29 8:45 ` Pierre Habouzit
2008-07-29 8:21 ` Pierre Habouzit
2008-07-29 8:37 ` Pierre Habouzit
2008-07-29 8:51 ` Petr Baudis
2008-07-29 12:15 ` Johannes Schindelin
2008-07-29 13:07 ` Pierre Habouzit
2008-07-29 13:15 ` Johannes Schindelin
2008-07-29 13:19 ` Pierre Habouzit
2008-07-29 13:31 ` Nigel Magnay
2008-07-29 14:49 ` Pierre Habouzit
2008-07-29 14:53 ` Junio C Hamano
-- strict thread matches above, loose matches on Subject: below --
2009-10-17 17:15 Steven Noonan
2009-10-17 17:27 ` Jakub Narebski
2009-10-17 22:30 ` Nanako Shiraishi
2009-10-21 19:38 ` Avery Pennarun
2008-04-28 19:50 Victor Bogado da Silva Lins
2008-04-28 21:01 ` Miklos Vajna
[not found] <s5hwspjzbt0.wl%tiwai@suse.de>
[not found] ` <Pine.LNX.4.61.0802061437190.8113@tm8103.perex-int.cz>
[not found] ` <Pine.LNX.4.61.0802061505470.8113@tm8103.perex-int.cz>
[not found] ` <47AA1361.7070201@keyaccess.nl>
[not found] ` <s5h7ihhknez.wl%tiwai@suse.de>
2008-02-07 21:24 ` GIT submodules Rene Herman
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=32541b130807281440v64f3cb9ci50cf6d16be4f2f82@mail.gmail.com \
--to=apenwarr@gmail.com \
--cc=git@vger.kernel.org \
--cc=madcoder@debian.org \
--cc=nigel.magnay@gmail.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).