Re: [RFC] Submodules in GIT

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Shawn Pearce
Date: Tuesday, November 28, 2006 - 2:02 pm

Steven Grimm <koreth@midwinter.com> wrote:

Right, you would be replacing the prior branch of that submodule with
the new submodule branch.

I think the safety valve you are looking for here is two things:

  * don't automatically update the submodule's HEAD into the
    supermodule's index.

  * make sure the submodule's HEAD is a fast-forward of the
    supermodule's index, with a --force option to force it
	anyway.

Otherwise the developer just has to know what he/she is doing.
Today you can put stuff that isn't ready for prime-time into a
repository on the wrong branch just by applying the wrong patch,
or cherry-picking the wrong commit, etc...  the user can (and
will) make mistakes.  But they can also easily recover from them
by rewinding history and redoing it.


That's not really an issue.

A branch doesn't exist just because you checked-out the branch, or
because you created it.  A branch exists because there were two or
more commits (B and C) which use the same parent (A) and two or more
of those commits survive, e.g. they have refs which point to them
(directly or indirectly) or they were merged into another commit
which itself survives.

Therefore if the supermodule is on the "development branch" the
submodules are also immediately on the same branch, because their
HEADs are derived from whatever is stored in the supermodule's tree.
And that tree is derived from whatever "development branch" means.

Really what you want/need is a special head in the submodule
which acts as the "branch that corresponds to the supermodule".
This probably should just be a naked SHA1 stored in HEAD, which
is committable only because a supermodule exists in a higher level
directory.

The fact that the submodule project has branches *at all* is
totally irrelevant once you start to speak about that submodule
within the supermodule, as its the supermodule which determines
the branch of the submodule.


That's a mess.

You start to get into weird cases where the directory structure
expected by the build process is no longer intact, because the user
has sliced it apart in weird ways.  And there's no single version
which corresponds to that workspace as (if I recall correctly)
you can pick different tags or branches at will.  I believe that
ClearCase has the same bug.

You also can't version that now spliced workspace, aside from taking
the configuration file and putting that under version control too.

However I think the proposal on the table will support that to some
degree, in that you can take any version of any repository and embed
it at any directory of any other repository.  This means you can
for example embed the Linux kernel, glibc and gcc projects into
a larger "embedded device" repository, but you cannot alter the
structure of any of those three projects without making your own
locally developed branch of them.  Which is actually the correct
thing to do as any subslicing of a repository is exactly that:
a locally developed branch of that repository.

-- 
Shawn.
-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
Re: [RFC] Submodules in GIT, Jakub Narebski, (Tue Nov 28, 3:50 am)
Re: [RFC] Submodules in GIT, Andy Parkins, (Tue Nov 28, 6:35 am)
Re: [RFC] Submodules in GIT, Shawn Pearce, (Tue Nov 28, 8:44 am)
Re: [RFC] Submodules in GIT, Andy Parkins, (Tue Nov 28, 9:29 am)
Re: [RFC] Submodules in GIT, Shawn Pearce, (Tue Nov 28, 9:36 am)
Re: [RFC] Submodules in GIT, Jon Loeliger, (Tue Nov 28, 10:38 am)
Re: [RFC] Submodules in GIT, Steven Grimm, (Tue Nov 28, 12:58 pm)
Re: [RFC] Submodules in GIT, Shawn Pearce, (Tue Nov 28, 2:02 pm)
Re: [RFC] Submodules in GIT, Martin Waitz, (Wed Nov 29, 9:03 am)
Re: [RFC] Submodules in GIT, Martin Waitz, (Wed Nov 29, 9:15 am)
Re: [RFC] Submodules in GIT, Andy Parkins, (Wed Nov 29, 1:00 pm)
Re: [RFC] Submodules in GIT, sf, (Thu Nov 30, 4:57 am)
Re: [RFC] Submodules in GIT, Andreas Ericsson, (Thu Nov 30, 5:16 am)
Re: [RFC] Submodules in GIT, Andy Parkins, (Thu Nov 30, 5:40 am)
Re: [RFC] Submodules in GIT, Martin Waitz, (Thu Nov 30, 10:06 am)
Re: [RFC] Submodules in GIT, Andreas Ericsson, (Thu Nov 30, 11:57 am)
Re: [RFC] Submodules in GIT, Andy Parkins, (Fri Dec 1, 1:49 am)
Re: [RFC] Submodules in GIT, Andy Parkins, (Fri Dec 1, 2:02 am)
Re: [RFC] Submodules in GIT, Andreas Ericsson, (Fri Dec 1, 2:33 am)
Re: [RFC] Submodules in GIT, Andy Parkins, (Fri Dec 1, 3:38 am)
Re: [RFC] Submodules in GIT, Martin Waitz, (Fri Dec 1, 4:00 am)
Re: [RFC] Submodules in GIT, sf, (Fri Dec 1, 5:03 am)
Re: [RFC] Submodules in GIT, sf, (Fri Dec 1, 5:09 am)
Re: [RFC] Submodules in GIT, Martin Waitz, (Fri Dec 1, 5:11 am)
Re: [RFC] Submodules in GIT, Martin Waitz, (Fri Dec 1, 5:12 am)
Re: [RFC] Submodules in GIT, sf, (Fri Dec 1, 6:05 am)
Re: [RFC] Submodules in GIT, sf, (Fri Dec 1, 6:21 am)
Re: [RFC] Submodules in GIT, Martin Waitz, (Fri Dec 1, 6:35 am)
Re: [RFC] Submodules in GIT, Martin Waitz, (Fri Dec 1, 6:43 am)
Re: [RFC] Submodules in GIT, Andreas Ericsson, (Fri Dec 1, 6:43 am)
Re: [RFC] Submodules in GIT, Martin Waitz, (Fri Dec 1, 6:46 am)
Re: [RFC] Submodules in GIT, Stephan Feder, (Fri Dec 1, 6:51 am)
Re: [RFC] Submodules in GIT, Stephan Feder, (Fri Dec 1, 7:23 am)
Re: [RFC] Submodules in GIT, Andreas Ericsson, (Fri Dec 1, 7:52 am)
Re: [RFC] Submodules in GIT, Martin Waitz, (Fri Dec 1, 7:58 am)
Re: [RFC] Submodules in GIT, Martin Waitz, (Fri Dec 1, 8:00 am)
Re: [RFC] Submodules in GIT, Martin Waitz, (Fri Dec 1, 8:07 am)
Re: [RFC] Submodules in GIT, Stephan Feder, (Fri Dec 1, 8:47 am)
Re: [RFC] Submodules in GIT, Stephan Feder, (Fri Dec 1, 9:04 am)
Re: [RFC] Submodules in GIT, Martin Waitz, (Fri Dec 1, 9:15 am)
Re: [RFC] Submodules in GIT, Andreas Ericsson, (Fri Dec 1, 9:38 am)
Re: [RFC] Submodules in GIT, Linus Torvalds, (Fri Dec 1, 9:49 am)
Re: [RFC] Submodules in GIT, Martin Waitz, (Fri Dec 1, 9:54 am)
Re: [RFC] Submodules in GIT, Martin Waitz, (Fri Dec 1, 9:57 am)
Re: [RFC] Submodules in GIT, sf, (Fri Dec 1, 10:08 am)
Re: [RFC] Submodules in GIT, Martin Waitz, (Fri Dec 1, 10:14 am)
Re: [RFC] Submodules in GIT, Stephan Feder, (Fri Dec 1, 10:33 am)
Re: [RFC] Submodules in GIT, Andreas Ericsson, (Fri Dec 1, 11:06 am)
Re: [RFC] Submodules in GIT, Andreas Ericsson, (Fri Dec 1, 11:08 am)
Re: [RFC] Submodules in GIT, Martin Waitz, (Fri Dec 1, 11:48 am)
Re: [RFC] Submodules in GIT, Martin Waitz, (Fri Dec 1, 11:51 am)
Re: [RFC] Submodules in GIT, Andy Parkins, (Fri Dec 1, 12:17 pm)
Re: [RFC] Submodules in GIT, Martin Waitz, (Fri Dec 1, 12:38 pm)
Re: [RFC] Submodules in GIT, Linus Torvalds, (Fri Dec 1, 1:13 pm)
Re: [RFC] Submodules in GIT, Martin Waitz, (Fri Dec 1, 1:30 pm)
Re: [RFC] Submodules in GIT, Andy Parkins, (Fri Dec 1, 2:04 pm)
Re: [RFC] Submodules in GIT, Martin Waitz, (Fri Dec 1, 2:37 pm)
Re: [RFC] Submodules in GIT, Andy Parkins, (Fri Dec 1, 2:54 pm)
Re: [RFC] Submodules in GIT, Josef Weidendorfer, (Fri Dec 1, 3:06 pm)
Re: [RFC] Submodules in GIT, Martin Waitz, (Fri Dec 1, 3:08 pm)
Re: [RFC] Submodules in GIT, Martin Waitz, (Fri Dec 1, 3:12 pm)
Re: [RFC] Submodules in GIT, Josef Weidendorfer, (Fri Dec 1, 3:26 pm)
Re: [RFC] Submodules in GIT, Linus Torvalds, (Fri Dec 1, 3:26 pm)
Re: [RFC] Submodules in GIT, sf, (Fri Dec 1, 3:35 pm)
Re: [RFC] Submodules in GIT, Martin Waitz, (Fri Dec 1, 3:40 pm)
Re: [RFC] Submodules in GIT, sf, (Fri Dec 1, 3:41 pm)
Re: [RFC] Submodules in GIT, Josef Weidendorfer, (Fri Dec 1, 3:55 pm)
Re: [RFC] Submodules in GIT, Josef Weidendorfer, (Fri Dec 1, 4:03 pm)
Re: [RFC] Submodules in GIT, Martin Waitz, (Fri Dec 1, 4:07 pm)
Re: [RFC] Submodules in GIT, Linus Torvalds, (Fri Dec 1, 4:09 pm)
Re: [RFC] Submodules in GIT, Josef Weidendorfer, (Fri Dec 1, 4:17 pm)
Re: [RFC] Submodules in GIT, Alan Chandler, (Fri Dec 1, 4:23 pm)
Re: [RFC] Submodules in GIT, Linus Torvalds, (Fri Dec 1, 4:30 pm)
Re: [RFC] Submodules in GIT, sf, (Fri Dec 1, 4:34 pm)
Re: [RFC] Submodules in GIT, Josef Weidendorfer, (Fri Dec 1, 4:36 pm)
Re: [RFC] Submodules in GIT, sf, (Fri Dec 1, 4:49 pm)
Re: [RFC] Submodules in GIT, Linus Torvalds, (Fri Dec 1, 5:12 pm)
Re: [RFC] Submodules in GIT, Josef Weidendorfer, (Fri Dec 1, 5:14 pm)
Re: [RFC] Submodules in GIT, Linus Torvalds, (Fri Dec 1, 5:33 pm)
Re: [RFC] Submodules in GIT, Andy Parkins, (Sat Dec 2, 2:22 am)
Re: [RFC] Submodules in GIT, Andy Parkins, (Sat Dec 2, 2:27 am)
Re: [RFC] Submodules in GIT, Andy Parkins, (Sat Dec 2, 3:04 am)
Re: [RFC] Submodules in GIT, Josef Weidendorfer, (Sat Dec 2, 4:32 am)
Re: [RFC] Submodules in GIT, Josef Weidendorfer, (Sat Dec 2, 6:50 am)
Re: [RFC] Submodules in GIT, Torgil Svensson, (Sat Dec 2, 11:57 am)
Re: [RFC] Submodules in GIT, Linus Torvalds, (Sat Dec 2, 12:41 pm)
Re: [RFC] Submodules in GIT, Martin Waitz, (Sat Dec 2, 12:46 pm)
Re: [RFC] Submodules in GIT, Linus Torvalds, (Sat Dec 2, 12:52 pm)
Re: [RFC] Submodules in GIT, Martin Waitz, (Sat Dec 2, 1:12 pm)
Re: [RFC] Submodules in GIT, Martin Waitz, (Sat Dec 2, 1:18 pm)
Re: [RFC] Submodules in GIT, Martin Waitz, (Sat Dec 2, 1:21 pm)
Re: [RFC] Submodules in GIT, Martin Waitz, (Sat Dec 2, 1:24 pm)
Re: [RFC] Submodules in GIT, Martin Waitz, (Sat Dec 2, 1:40 pm)
Re: [RFC] Submodules in GIT, Martin Waitz, (Sat Dec 2, 1:43 pm)
Re: [RFC] Submodules in GIT, Linus Torvalds, (Sat Dec 2, 1:44 pm)
Re: [RFC] Submodules in GIT, Linus Torvalds, (Sat Dec 2, 1:46 pm)
Re: [RFC] Submodules in GIT, Martin Waitz, (Sat Dec 2, 1:58 pm)
Re: [RFC] Submodules in GIT, Martin Waitz, (Sat Dec 2, 2:06 pm)
Re: [RFC] Submodules in GIT, Linus Torvalds, (Sat Dec 2, 2:22 pm)
Re: [RFC] Submodules in GIT, Linus Torvalds, (Sat Dec 2, 2:29 pm)
Re: [RFC] Submodules in GIT, Josef Weidendorfer, (Sat Dec 2, 5:55 pm)
Re: [RFC] Submodules in GIT, Josef Weidendorfer, (Sat Dec 2, 6:02 pm)
Re: [RFC] Submodules in GIT, Josef Weidendorfer, (Sat Dec 2, 6:11 pm)
Thoughts about memory requirements in traversals [Was: Re: ..., Josef Weidendorfer, (Sat Dec 2, 7:07 pm)
Re: Thoughts about memory requirements in traversals [Was: ..., Josef Weidendorfer, (Sat Dec 2, 8:21 pm)
Re: [RFC] Submodules in GIT, Martin Waitz, (Sat Dec 2, 11:29 pm)
Re: [RFC] Submodules in GIT, Torgil Svensson, (Sun Dec 3, 2:19 am)
Re: [RFC] Submodules in GIT, Linus Torvalds, (Sun Dec 3, 10:54 am)
Re: [RFC] Submodules in GIT, Andy Parkins, (Sun Dec 3, 12:33 pm)
Re: [RFC] Submodules in GIT, Martin Waitz, (Sun Dec 3, 1:46 pm)
Re: [RFC] Submodules in GIT, Sven Verdoolaege, (Sun Dec 3, 3:16 pm)
Re: [RFC] Submodules in GIT, Linus Torvalds, (Sun Dec 3, 3:32 pm)
Re: [RFC] Submodules in GIT, Josef Weidendorfer, (Mon Dec 4, 4:12 am)
Re: [RFC] Submodules in GIT, Michael K. Edwards, (Mon Dec 4, 11:56 am)
Re: [RFC] Submodules in GIT, Torgil Svensson, (Mon Dec 4, 1:26 pm)
Re: [RFC] Submodules in GIT, Linus Torvalds, (Mon Dec 4, 1:41 pm)
Re: [RFC] Submodules in GIT, Torgil Svensson, (Mon Dec 4, 2:36 pm)
Re: [RFC] Submodules in GIT, Sam Vilain, (Mon Dec 4, 6:31 pm)
Re: [RFC] Submodules in GIT, Daniel Barkalow, (Mon Dec 4, 7:33 pm)
Re: [RFC] Submodules in GIT, Uwe Kleine-Koenig, (Tue Dec 5, 2:01 am)
Re: [RFC] Submodules in GIT, Andreas Ericsson, (Tue Dec 5, 3:33 am)
Re: [RFC] Submodules in GIT, Andreas Ericsson, (Tue Dec 5, 3:38 am)
Re: [RFC] Submodules in GIT, Andreas Ericsson, (Tue Dec 5, 3:42 am)
Re: [RFC] Submodules in GIT, Uwe Kleine-Koenig, (Tue Dec 5, 8:02 am)
Re: [RFC] Submodules in GIT, Andreas Ericsson, (Tue Dec 5, 8:30 am)
Re: [RFC] Submodules in GIT, Sven Verdoolaege, (Tue Dec 5, 9:00 am)
Re: [RFC] Submodules in GIT, sf, (Tue Dec 5, 3:07 pm)
Re: [RFC] Submodules in GIT, Jon Loeliger, (Fri Dec 8, 11:29 am)
Re: [RFC] Submodules in GIT, Sven Verdoolaege, (Fri Dec 8, 11:45 am)
Re: [RFC] Submodules in GIT, R. Steve McKown, (Sat Dec 9, 2:34 pm)
Re: [RFC] Submodules in GIT, Torgil Svensson, (Sun Dec 10, 4:47 am)
Re: [RFC] Submodules in GIT, Andreas Ericsson, (Tue Dec 12, 1:32 am)
Re: [RFC] Submodules in GIT, Torgil Svensson, (Thu Dec 14, 2:27 pm)
Re: [RFC] Submodules in GIT, Josef Weidendorfer, (Thu Dec 14, 4:07 pm)
Re: [RFC] Submodules in GIT, Torgil Svensson, (Fri Dec 15, 10:43 am)
Re: [RFC] Submodules in GIT, Josef Weidendorfer, (Fri Dec 15, 2:42 pm)
Re: [RFC] Submodules in GIT, Torgil Svensson, (Fri Dec 15, 4:43 pm)
Re: [RFC] Submodules in GIT, Torgil Svensson, (Fri Dec 15, 6:13 pm)
Re: [RFC] Submodules in GIT, Torgil Svensson, (Fri Dec 15, 6:20 pm)
Re: [RFC] Submodules in GIT, Linus Torvalds, (Fri Dec 15, 6:49 pm)
Re: [RFC] Submodules in GIT, Linus Torvalds, (Fri Dec 15, 7:12 pm)
Re: [RFC] Submodules in GIT, Torgil Svensson, (Sat Dec 16, 1:50 am)