From: Junio C Hamano <gitster@pobox.com>
To: Jakub Narebski <jnareb@gmail.com>
Cc: Pierre Habouzit <madcoder@debian.org>,
Avery Pennarun <apenwarr@gmail.com>,
Nigel Magnay <nigel.magnay@gmail.com>,
Git ML <git@vger.kernel.org>
Subject: Re: git submodules
Date: Mon, 28 Jul 2008 15:41:17 -0700 [thread overview]
Message-ID: <7vfxptpr76.fsf@gitster.siamese.dyndns.org> (raw)
In-Reply-To: <m3r69dtzm9.fsf@localhost.localdomain> (Jakub Narebski's message of "Mon, 28 Jul 2008 15:26:33 -0700 (PDT)")
Jakub Narebski <jnareb@gmail.com> writes:
> Pierre Habouzit <madcoder@debian.org> writes:
>> On Mon, Jul 28, 2008 at 09:40:22PM +0000, Avery Pennarun wrote:
>
>> > 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.
>>
>> Yes you can, in what I propose you have a dummy .git in each submodule,
>> with probably an index, a HEAD and a config file (maybe some other
>> things along) to allow that especially.
>
> What you are (re)inventing here is something called gitlink (.git which
> is a file, or .gitlink file); not to be confused with 'sumbodule'/'commit'
> entry in a tree which is sometimes called gitlink....
> ...
> There was even some preliminary implementation IIRC, but AFAIR it
> was abandoned because of no "real usage".
I am afraid you are confused. I think you are talking about "gitfile",
not "gitlink".
It is not abandoned; see e.g. read_gitfile_gently() in setup.c.
I suspect the use of it may help the use case Pierre proposes, but its
main attractiveness as I understood it back when we discussed the facility
was that you could switch branches between 'maint' that did not have a
submodule at "path" back then, and 'master' that does have one now,
without losing the submodule repository. When checking out 'master' (and
that would probably mean you would update 'git-submodule init' and
'git-submodule update' implementation), you would instanciate subdirectory
"path", create "path/.git" that is such a regular file that that points at
somewhere inside the $GIT_DIR of superproject (say ".git/submodules/foo").
By storing refs and object store are all safely away in the superproject
$GIT_DIR, you can now safely switch back to 'maint', which would involve
making sure there is no local change that will be lost and then removing
the "path" and everything underneath it.
next prev parent reply other threads:[~2008-07-28 22:42 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
2008-07-28 22:03 ` Pierre Habouzit
2008-07-28 22:26 ` Jakub Narebski
2008-07-28 22:41 ` Junio C Hamano [this message]
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=7vfxptpr76.fsf@gitster.siamese.dyndns.org \
--to=gitster@pobox.com \
--cc=apenwarr@gmail.com \
--cc=git@vger.kernel.org \
--cc=jnareb@gmail.com \
--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).