* After-the-fact submodule detection or creation
@ 2007-12-07 3:01 Michael Poole
2007-12-07 7:37 ` Alex Riesen
0 siblings, 1 reply; 3+ messages in thread
From: Michael Poole @ 2007-12-07 3:01 UTC (permalink / raw)
To: git
I have a project where most branches have one subdirectory for the
core program and other subdirectories for support scripts, programs
and libraries. The supporting subdirectories vary from branch to
branch. However, some branches contain just the core program, with no
subdirectories. Starting from scratch, I would say the core program
should be a submodule, but historically it was not populated as one.
Is there a way to easily create such a pseudo-submodule branch in git,
or are real submodules strongly preferred for this kind of scenario?
(The added twist: I ran into this while importing a Subversion
repository. git-svn identified two trees of history in the repository
-- one history containing the core plus support trees, one history
containing just the core program. Since the trees do have the same
contents, only the commits are duplicated, but that is not quite
ideal.
It seems like using the current submodule code would mean that this
kind of import would need two passes over the foreign repository,
rather than one if the branch could be created after the parent tree
is initially imported. I can live with that -- it is a rather unusual
case -- but maybe there is a better way.)
Michael Poole
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: After-the-fact submodule detection or creation
2007-12-07 3:01 After-the-fact submodule detection or creation Michael Poole
@ 2007-12-07 7:37 ` Alex Riesen
2007-12-07 21:35 ` Michael Poole
0 siblings, 1 reply; 3+ messages in thread
From: Alex Riesen @ 2007-12-07 7:37 UTC (permalink / raw)
To: Michael Poole; +Cc: git
Michael Poole, Fri, Dec 07, 2007 04:01:04 +0100:
> It seems like using the current submodule code would mean that this
> kind of import would need two passes over the foreign repository,
> rather than one if the branch could be created after the parent tree
> is initially imported. I can live with that -- it is a rather unusual
> case -- but maybe there is a better way.)
Import the core module in a branch all by itself, and merge it in
every support branch?
Supp1: o-o-o-----o-o-o-o-o-o-o
/
Core: o-o-o-o-o
\
Supp2: o-o-------o-o-o-o
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: After-the-fact submodule detection or creation
2007-12-07 7:37 ` Alex Riesen
@ 2007-12-07 21:35 ` Michael Poole
0 siblings, 0 replies; 3+ messages in thread
From: Michael Poole @ 2007-12-07 21:35 UTC (permalink / raw)
To: Alex Riesen; +Cc: git
Alex Riesen writes:
> Michael Poole, Fri, Dec 07, 2007 04:01:04 +0100:
>> It seems like using the current submodule code would mean that this
>> kind of import would need two passes over the foreign repository,
>> rather than one if the branch could be created after the parent tree
>> is initially imported. I can live with that -- it is a rather unusual
>> case -- but maybe there is a better way.)
>
> Import the core module in a branch all by itself, and merge it in
> every support branch?
>
>
> Supp1: o-o-o-----o-o-o-o-o-o-o
> /
> Core: o-o-o-o-o
> \
> Supp2: o-o-------o-o-o-o
Yes, that's the obvious way to do it with submodules. Teaching
git-svn to use that is the hard part.
Since the core code was first branched independently at r734 in the
existing repository, the import (either automated or manual) would
need to go through once to identify what subdirectories are actually
submodules in git terminology, and make a second pass to actually
perform the imports. If the submodule creation could happen after the
fact, it would only need one pass.
Maybe the right question to ask is whether having a partial-tree
branch can be reasonably handled by git (in particular, detecting a
rename of the core subtree to the top-level tree in the new branch's
first commit). If git understand that operation, then what I would
like to do would be reasonably straightforward. If it does not make
sense, then I'll think about how to teach git-svn that certain
subdirectories should be promoted to submodules.
Michael Poole
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2007-12-07 21:36 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-12-07 3:01 After-the-fact submodule detection or creation Michael Poole
2007-12-07 7:37 ` Alex Riesen
2007-12-07 21:35 ` Michael Poole
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).