From: A Large Angry SCM <gitzilla@gmail.com>
To: Martin Waitz <tali@admingilde.org>
Cc: Shawn Pearce <spearce@spearce.org>,
Daniel Barkalow <barkalow@iabervon.org>,
git@vger.kernel.org
Subject: Re: Notes on Using Git with Subprojects
Date: Wed, 27 Sep 2006 09:58:43 -0700 [thread overview]
Message-ID: <451AADC3.40201@gmail.com> (raw)
In-Reply-To: <20060927080652.GA8056@admingilde.org>
Martin Waitz wrote:
[...]
> My current approach is like this:
>
> * create a .gitmodules file which lists all the directories
> which contain a submodule.
> * the .git/refs/heads directory of the submodule gets stored in
> .gitmodule/<modulename> inside the parent project
> * both things above should be tracked in the parent project.
> This way you always store the current state of each submodule
> in each commit of the parent project. And you don't have to
> create a new parent commit for each change. You can commit
> to the parent project when you think that all your modules are
> in a good state.
This means that modules are not separate, stand alone projects but,
rather, just a sub part of your bigger project. Very useful and
applicable in some situations but other situations want/need separate,
stand alone subprojects.
> * When checking out a project, all submodules listen in .gitmodules
> get checked out, too.
> * If there is a merge conflict in the module list or its refs/heads,
> this is handled specially, e.g. by triggering a new merge inside
> the submodule.
> * The object directory is shared between the parent and all modules.
> To make fsck-objects happy, the parent gets a refs/module link
> pointing to .gitmodule/ and all submodules get a refs/parent
> link pointing to the refs directory of the parent.
>
[...]
> By storing the complete refs/heads directory for each submodule instead
> of only one head, it is possible to track multiple branches of a
> subproject. I'm don't know yet how this works out in praktice but I
> think that it can be nice to be able to atomically commit to several
> branches of one submodule (perhaps one branch per customer, per
> hardware platform, whatever).
It's not immediately clear to me if tracking several long term
(globally) visible branches in a checkout sub module is generally useful
or only useful in special situations. I need to think about this...
[...]
You solved a similar problem to the one I'm working on; and one that is
applicable to a number of projects. Namely, projects where all the parts
are under the control of the same entity. For projects looking to escape
CVS, that use CVS modules, this looks like a Git solution.
The problem I'm working on is how to deal with the sub parts of a larger
project when those sub parts are controlled by different entity. Silly
example: the kernel is controlled by Linus; glibc is controlled by the
GNU folks, gcc is controlled by some other GNU folks, the web server is
controlled by the Apache Foundation, the X server is controlled by Xorg,
etc.
next prev parent reply other threads:[~2006-09-27 16:59 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-09-26 17:40 Notes on Using Git with Subprojects A Large Angry SCM
2006-09-26 20:25 ` Johannes Schindelin
2006-09-26 22:01 ` A Large Angry SCM
2006-09-26 22:13 ` Johannes Schindelin
2006-09-26 22:45 ` A Large Angry SCM
2006-09-26 21:23 ` Daniel Barkalow
2006-09-26 21:30 ` Shawn Pearce
2006-09-26 22:33 ` A Large Angry SCM
2006-09-27 8:06 ` Martin Waitz
2006-09-27 9:55 ` Johannes Schindelin
2006-09-27 11:38 ` Martin Waitz
2006-09-27 12:01 ` Johannes Schindelin
2006-09-27 12:44 ` Sven Verdoolaege
2006-09-27 21:05 ` Junio C Hamano
2006-09-28 15:02 ` Michael S. Tsirkin
2006-09-28 20:16 ` Jeff King
2006-09-27 12:46 ` Martin Waitz
2006-09-27 13:13 ` Johannes Schindelin
2006-09-27 17:13 ` A Large Angry SCM
2006-09-27 23:14 ` Johannes Schindelin
2006-09-27 23:36 ` Shawn Pearce
2006-09-27 23:55 ` Rogan Dawes
2006-09-28 0:36 ` Shawn Pearce
2006-09-28 5:02 ` A Large Angry SCM
2006-09-28 4:48 ` A Large Angry SCM
2006-09-27 16:58 ` A Large Angry SCM [this message]
2006-09-27 17:33 ` Jeff King
2006-09-28 3:47 ` A Large Angry SCM
2006-09-28 3:52 ` Jeff King
2006-09-28 3:58 ` Shawn Pearce
2006-09-28 4:00 ` Jeff King
2006-09-28 4:09 ` Shawn Pearce
2006-09-28 3:52 ` Shawn Pearce
2006-09-28 15:39 ` Johannes Schindelin
2006-09-28 7:37 ` Martin Waitz
2006-09-28 20:30 ` A Large Angry SCM
2006-09-29 7:04 ` Martin Waitz
2006-09-26 22:07 ` A Large Angry SCM
2006-10-01 5:19 ` A Large Angry SCM
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=451AADC3.40201@gmail.com \
--to=gitzilla@gmail.com \
--cc=barkalow@iabervon.org \
--cc=git@vger.kernel.org \
--cc=spearce@spearce.org \
--cc=tali@admingilde.org \
/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).