From: Linus Torvalds <torvalds@osdl.org>
To: Simon Richter <Simon.Richter@hogyros.de>
Cc: Johannes Schindelin <Johannes.Schindelin@gmx.de>, git@vger.kernel.org
Subject: Re: RFC: Subprojects
Date: Wed, 11 Jan 2006 12:06:45 -0800 (PST) [thread overview]
Message-ID: <Pine.LNX.4.64.0601111157020.5073@g5.osdl.org> (raw)
In-Reply-To: <43C55FEF.2090108@hogyros.de>
On Wed, 11 Jan 2006, Simon Richter wrote:
>
> Exactly. The questions I posed in the last paragraph of the initial mail,
> rewritten for clarity, would be
> - "should cg-commit automatically create a commit in the master project when
> a change in the subproject is committed?", and
No.
Don't commit in the "parent" thing automatically. The sub-project should
be as independent as possible, and you should see a commit to that to be
nothing more than "editing" a regular file in the top-level project.
In many ways, if you decide to look into doing a "gitlink" kind of object,
that object really _does_ conceptually point to the .git/HEAD file in the
subproject. So when you do a commit in the subproject, conceptually that
is no different from editing the .git/HEAD.
Then, when you want to commit the _dependency_ of the top-level project on
the sub-project, you commit in the top level. That commit probably does
other things too: it probably also commits the code in the top level that
now depends on the sub-project changes.
So don't tie the two together any more than necessary. My suggested usage
case has the big advantage that the sub-project is much less tightly
coupled, so you can do things like "git pull" _inside_ the subproject, to
update it, and then do a big compile in the top-level project to reflect
the changes (and perhaps update stuff at the top level to conform to
changes in the sub-project), and then commit in the top independently
(which will now automatically pick up the changes to .git/HEAD that "git
pull" did on the subproject).
> - "should cg-commit automatically commit all changes to subprojects when a
> path that has been listed on the command line contains a subproject?".
Again, I'd really suggest not. If you keep the "gitlink" really meaning
the ".git/HEAD" contents of the subproject (which is a good semantic
rule), then if there is any dirty state in the sub-project, it is totally
irrelevant to a "git commit". Because it's dirty, it's not part of of
.git/HEAD yet.
Now, obviously you should make "git status" _talk_ about the fact that the
sub-project is dirty, so that the committer sees that the sub-project
needs committing first (the same way "git status" now informs git commit
about dirty files that haven't been updated).
(I'm saying "git" here all the time rather than cg-, because not only
don't I know cogito very well, I think you want to do most of the core at
the git level, and just teach cg about the new capability).
Linus
next prev parent reply other threads:[~2006-01-11 20:06 UTC|newest]
Thread overview: 56+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-01-11 15:58 RFC: Subprojects Simon Richter
2006-01-11 16:44 ` Johannes Schindelin
2006-01-11 16:52 ` Simon Richter
2006-01-11 17:42 ` Linus Torvalds
2006-01-11 19:43 ` Simon Richter
2006-01-11 20:06 ` Linus Torvalds [this message]
2006-01-14 8:59 ` Junio C Hamano
2006-01-14 19:16 ` Linus Torvalds
2006-01-14 19:32 ` A Large Angry SCM
2006-01-14 20:02 ` Linus Torvalds
2006-01-14 20:30 ` A Large Angry SCM
2006-01-14 20:38 ` Junio C Hamano
2006-01-15 0:28 ` Martin Langhoff
2006-01-15 0:49 ` Junio C Hamano
2006-01-15 1:55 ` Tom Prince
2006-01-16 5:06 ` Daniel Barkalow
2006-01-16 19:08 ` A Large Angry SCM
2006-01-16 20:20 ` Daniel Barkalow
2006-01-16 22:25 ` A Large Angry SCM
2006-01-16 7:48 ` Alex Riesen
2006-01-14 20:16 ` Junio C Hamano
2006-01-15 1:01 ` Junio C Hamano
2006-01-16 10:44 ` Josef Weidendorfer
2006-01-16 20:49 ` Junio C Hamano
2006-01-17 5:46 ` Daniel Barkalow
2006-01-17 6:18 ` Junio C Hamano
2006-01-17 14:09 ` Petr Baudis
2006-01-17 16:45 ` Daniel Barkalow
2006-01-17 17:33 ` Craig Schlenter
2006-01-17 17:38 ` Linus Torvalds
2006-01-17 17:41 ` Daniel Barkalow
2006-01-18 1:41 ` Junio C Hamano
2006-01-18 3:49 ` Junio C Hamano
2006-01-18 11:47 ` Alexander Litvinov
2006-01-18 13:29 ` Andreas Ericsson
2006-01-18 17:06 ` Junio C Hamano
2006-01-18 18:21 ` Daniel Barkalow
2006-01-18 18:49 ` Junio C Hamano
2006-01-18 19:29 ` Daniel Barkalow
2006-01-23 1:22 ` Petr Baudis
2006-01-23 0:50 ` Petr Baudis
2006-01-16 7:28 ` Alexander Litvinov
2006-01-16 10:16 ` Andreas Ericsson
2006-02-20 13:16 ` Uwe Zeisberger
2006-02-21 7:57 ` Junio C Hamano
2006-01-12 3:19 ` Alexander Litvinov
2006-01-12 4:46 ` Martin Langhoff
2006-01-12 5:25 ` Alexander Litvinov
2006-01-12 5:39 ` Martin Langhoff
2006-01-12 8:36 ` Alexander Litvinov
2006-01-12 8:58 ` Alex Riesen
2006-01-12 7:20 ` Anand Kumria
2006-01-12 13:38 ` Daniel Barkalow
2006-01-15 15:07 ` [RFC][PATCH] Cogito support for simple subprojects Petr Baudis
2006-01-15 17:38 ` Linus Torvalds
2006-01-15 19:15 ` Junio C Hamano
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=Pine.LNX.4.64.0601111157020.5073@g5.osdl.org \
--to=torvalds@osdl.org \
--cc=Johannes.Schindelin@gmx.de \
--cc=Simon.Richter@hogyros.de \
--cc=git@vger.kernel.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).