git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Shawn Pearce <spearce@spearce.org>
To: Steven Grimm <koreth@midwinter.com>
Cc: Andy Parkins <andyparkins@gmail.com>, git@vger.kernel.org
Subject: Re: [RFC] Submodules in GIT
Date: Tue, 28 Nov 2006 16:02:11 -0500	[thread overview]
Message-ID: <20061128210211.GI28337@spearce.org> (raw)
In-Reply-To: <456C94E2.6010708@midwinter.com>

Steven Grimm <koreth@midwinter.com> wrote:
> Andy Parkins wrote:
> >Unfortunately, during development, you've switched libsubmodule1 to 
> >branch "development", but supermodule isn't tracking libsubmodule1/HEAD 
> >it's tracking libsubmodule1/master.  Your supermodule commit doesn't 
> >capture a snapshot of the tree you're using.
> >  
>
> Or maybe not a merge, but worse, you'd *replace* the 
> previously committed master with what's in your dev branch.

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.

> On a related note, it would be great from a usability point of view if 
> there were a way to say "I always want to be on the same branch in all 
> submodules and the supermodule."

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.

> But I think the Perforce-style 
> "compose a single workspace out of different bits of a larger project" 
> model is hugely useful

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.

-- 

  reply	other threads:[~2006-11-28 21:02 UTC|newest]

Thread overview: 252+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-11-20 21:51 [RFC] Submodules in GIT Martin Waitz
2006-11-20 22:16 ` Jakub Narebski
2006-11-20 22:28   ` Martin Waitz
2006-11-20 22:43   ` Junio C Hamano
2006-11-20 23:02     ` Jakub Narebski
2006-11-20 23:52       ` Martin Waitz
2006-11-21  1:31       ` Sam Vilain
2006-11-20 23:05     ` Linus Torvalds
2006-11-20 23:25       ` J. Bruce Fields
2006-11-20 23:33         ` Martin Waitz
2006-11-21 18:01           ` J. Bruce Fields
2006-11-21 19:32             ` Martin Waitz
2006-11-20 23:29       ` Martin Waitz
2006-11-21  0:10       ` Junio C Hamano
2006-11-21  0:42         ` Jakub Narebski
2006-11-21  6:21           ` Martin Waitz
2006-11-21 10:04             ` Jakub Narebski
2006-11-21 11:49               ` Martin Waitz
2006-11-21  6:27         ` Martin Waitz
2006-11-21  7:36           ` Junio C Hamano
2006-11-21  7:55             ` Martin Waitz
2006-11-21 22:31       ` Yann Dirson
2006-11-21 22:51         ` Linus Torvalds
2006-11-21 22:59           ` Linus Torvalds
2006-11-21 23:54           ` Yann Dirson
2006-11-22  3:40             ` Shawn Pearce
2006-11-23 23:23               ` Yann Dirson
2006-11-25  6:53                 ` Shawn Pearce
2006-11-25 11:12                   ` Yann Dirson
2006-11-25 18:57                     ` Linus Torvalds
2006-11-25 19:19                       ` Steven Grimm
2006-11-25 19:30                         ` Linus Torvalds
2006-11-25 23:49                           ` Yann Dirson
2006-11-26  1:14                             ` Sven Verdoolaege
2006-11-26  1:32                               ` Yann Dirson
2006-11-26  3:39                             ` Linus Torvalds
2006-11-26  8:05                               ` Daniel Barkalow
2006-11-28  9:36                                 ` Andreas Ericsson
2006-11-28 10:29                                   ` Andy Parkins
2006-11-28 10:50                                     ` Jakub Narebski
2006-11-28 13:35                                       ` Andy Parkins
2006-11-28 15:44                                         ` Shawn Pearce
2006-11-28 16:29                                           ` Andy Parkins
2006-11-28 16:36                                             ` Shawn Pearce
2006-11-28 17:38                                             ` Jon Loeliger
2006-11-29 16:15                                             ` Martin Waitz
2006-11-30 11:57                                             ` sf
     [not found]                                               ` <200611301255.41733.andyparkins@gmail.com>
2006-11-30 14:00                                                 ` Stephan Feder
2006-11-30 14:49                                                   ` Andy Parkins
2006-11-30 15:20                                                     ` Sven Verdoolaege
2006-11-30 15:30                                                       ` Andy Parkins
2006-11-30 15:50                                                         ` Andreas Ericsson
2006-11-30 16:08                                                           ` Andy Parkins
2006-11-30 16:33                                                         ` Sven Verdoolaege
2006-12-01  0:01                                                           ` Andy Parkins
2006-12-01  0:11                                                             ` Jakub Narebski
2006-12-01  9:32                                                             ` Sven Verdoolaege
2006-12-01 10:19                                                               ` Andy Parkins
2006-11-30 17:19                                                         ` Martin Waitz
2006-11-30 16:05                                                     ` sf
2006-11-30 16:12                                                       ` sf
2006-12-01  9:19                                                       ` Andy Parkins
2006-12-01  9:57                                                         ` Martin Waitz
2006-12-01 10:29                                                           ` Andy Parkins
2006-12-01 10:42                                                             ` Sven Verdoolaege
2006-12-01 11:02                                                               ` Andy Parkins
2006-12-01 11:10                                                                 ` Sven Verdoolaege
2006-12-01 11:45                                                                   ` sf
2006-12-01 12:12                                                                   ` Andy Parkins
2006-12-01 12:28                                                                     ` Martin Waitz
2006-12-01 14:11                                                                       ` Andy Parkins
2006-12-01 15:12                                                                         ` Martin Waitz
2006-12-01 11:46                                                                 ` Martin Waitz
2006-12-01 12:16                                                                   ` Andy Parkins
2006-12-01 12:34                                                                     ` Martin Waitz
2006-12-01 13:59                                                                       ` Andy Parkins
2006-12-01 14:07                                                                         ` Martin Waitz
2006-12-01 11:31                                                             ` Martin Waitz
2006-12-01 12:20                                                               ` Andy Parkins
2006-12-01 12:37                                                                 ` Martin Waitz
2006-12-02 15:16                                                                   ` Jakub Narebski
2006-11-28 19:58                                         ` Steven Grimm
2006-11-28 21:02                                           ` Shawn Pearce [this message]
2006-11-29 16:03                                         ` Martin Waitz
2006-11-29 20:00                                           ` Andy Parkins
2006-11-30 12:16                                             ` Andreas Ericsson
2006-11-30 12:40                                               ` Andy Parkins
2006-11-30 17:06                                             ` Martin Waitz
2006-11-30 18:57                                               ` Andreas Ericsson
2006-12-01  8:49                                                 ` Andy Parkins
2006-12-01  9:33                                                   ` Andreas Ericsson
2006-12-01 10:38                                                     ` Andy Parkins
2006-12-01 12:03                                                 ` sf
2006-12-01 12:11                                                   ` Martin Waitz
2006-12-01 13:21                                                     ` sf
2006-12-01 13:43                                                       ` Martin Waitz
2006-12-01 14:23                                                         ` Stephan Feder
2006-12-01 15:07                                                           ` Martin Waitz
2006-12-01 16:04                                                             ` Stephan Feder
2006-12-01 16:15                                                               ` Martin Waitz
2006-12-05  9:01                                                 ` Uwe Kleine-Koenig
2006-12-05 10:33                                                   ` Andreas Ericsson
2006-12-05 11:11                                                     ` Jakub Narebski
2006-12-05 15:02                                                     ` Uwe Kleine-Koenig
2006-12-05 15:30                                                       ` Andreas Ericsson
2006-12-05 16:00                                                   ` Sven Verdoolaege
2006-12-01  9:02                                               ` Andy Parkins
2006-12-01 11:00                                                 ` Martin Waitz
2006-12-01 12:09                                                   ` sf
2006-12-01 12:12                                                     ` Martin Waitz
2006-12-01 13:05                                                       ` sf
2006-12-01 13:35                                                         ` Martin Waitz
2006-12-01 13:43                                                           ` Andreas Ericsson
2006-12-01 13:46                                                             ` Martin Waitz
2006-12-01 14:52                                                               ` Andreas Ericsson
2006-12-01 15:00                                                                 ` Martin Waitz
2006-12-01 16:38                                                                   ` Andreas Ericsson
2006-12-01 16:49                                                                     ` Linus Torvalds
2006-12-01 17:08                                                                       ` sf
2006-12-01 18:06                                                                         ` Andreas Ericsson
2006-12-01 20:13                                                                         ` Linus Torvalds
2006-12-01 20:30                                                                           ` Martin Waitz
2006-12-01 23:23                                                                             ` Alan Chandler
2006-12-01 22:06                                                                           ` Josef Weidendorfer
2006-12-01 22:12                                                                             ` Martin Waitz
2006-12-01 22:26                                                                               ` Josef Weidendorfer
2006-12-01 22:40                                                                                 ` Martin Waitz
2006-12-01 23:17                                                                               ` Josef Weidendorfer
2006-12-02 20:24                                                                                 ` Martin Waitz
2006-12-03  0:55                                                                                   ` Josef Weidendorfer
2006-12-03  6:29                                                                                     ` Martin Waitz
2006-12-01 22:26                                                                             ` Linus Torvalds
2006-12-01 22:41                                                                               ` sf
2006-12-01 23:03                                                                                 ` Josef Weidendorfer
2006-12-01 23:09                                                                                 ` Linus Torvalds
2006-12-01 23:36                                                                                   ` Josef Weidendorfer
2006-12-02  0:12                                                                                     ` Linus Torvalds
2006-12-02  9:22                                                                                       ` Andy Parkins
     [not found]                                                                                         ` <200612021255.59972.Josef.Weidendorfer@gmx.de>
2006-12-03  9:42                                                                                           ` Andy Parkins
2006-12-02 11:32                                                                                       ` Josef Weidendorfer
2006-12-02 19:52                                                                                         ` Linus Torvalds
2006-12-02 20:21                                                                                           ` Martin Waitz
2006-12-02 20:46                                                                                             ` Linus Torvalds
2006-12-02 20:58                                                                                               ` Martin Waitz
2006-12-03  1:11                                                                                                 ` Josef Weidendorfer
2006-12-02 20:18                                                                                       ` Martin Waitz
2006-12-02 20:44                                                                                         ` Linus Torvalds
2006-12-02 21:06                                                                                           ` Martin Waitz
2006-12-02 21:29                                                                                             ` Linus Torvalds
2006-12-02 21:22                                                                                           ` Linus Torvalds
2006-12-03  2:07                                                                                             ` Thoughts about memory requirements in traversals [Was: Re: [RFC] Submodules in GIT] Josef Weidendorfer
2006-12-03  2:25                                                                                               ` Linus Torvalds
2006-12-03  2:46                                                                                               ` Shawn Pearce
2006-12-03  3:21                                                                                                 ` Josef Weidendorfer
2006-12-03 11:10                                                                                                   ` Jakub Narebski
2006-12-03 11:47                                                                                                     ` Josef Weidendorfer
2006-12-03 20:46                                                                                           ` [RFC] Submodules in GIT Martin Waitz
2006-12-03 22:16                                                                                       ` Sven Verdoolaege
2006-12-03 22:32                                                                                         ` Linus Torvalds
2006-12-03 22:49                                                                                           ` Jakub Narebski
2006-12-04 11:12                                                                                           ` Josef Weidendorfer
2006-12-01 23:49                                                                                   ` sf
2006-12-02 18:57                                                                                     ` Torgil Svensson
2006-12-02 19:41                                                                                       ` Linus Torvalds
2006-12-03  9:19                                                                                         ` Torgil Svensson
2006-12-03 17:54                                                                                           ` Linus Torvalds
2006-12-04 20:26                                                                                             ` Torgil Svensson
2006-12-04 20:41                                                                                               ` Linus Torvalds
2006-12-04 21:36                                                                                                 ` Torgil Svensson
2006-12-05 10:42                                                                                                   ` Andreas Ericsson
2006-12-05 11:09                                                                                                     ` Jakub Narebski
2006-12-05 10:38                                                                                                 ` Andreas Ericsson
2006-12-05 11:01                                                                                                   ` Jakub Narebski
2006-12-03 19:33                                                                                         ` Andy Parkins
2006-12-05  2:33                                                                                         ` Daniel Barkalow
2006-12-05 22:07                                                                                           ` sf
2006-12-09 21:34                                                                                         ` R. Steve McKown
2006-12-10 11:47                                                                                           ` Torgil Svensson
2006-12-14 21:27                                                                                             ` Torgil Svensson
2006-12-14 23:07                                                                                               ` Josef Weidendorfer
2006-12-15 17:43                                                                                                 ` Torgil Svensson
2006-12-15 21:42                                                                                                   ` Josef Weidendorfer
2006-12-15 23:43                                                                                                     ` Torgil Svensson
2006-12-16  1:13                                                                                                       ` Torgil Svensson
2006-12-16  1:20                                                                                                         ` Torgil Svensson
2006-12-16  1:34                                                                                                           ` Jakub Narebski
2006-12-16  8:40                                                                                                             ` Torgil Svensson
2006-12-16  9:57                                                                                                               ` Jakub Narebski
2006-12-16 10:25                                                                                                                 ` Junio C Hamano
2006-12-16 15:05                                                                                                                 ` Torgil Svensson
2006-12-16 15:38                                                                                                                   ` Torgil Svensson
2006-12-16 16:32                                                                                                                   ` Jakub Narebski
2006-12-17  0:21                                                                                                                     ` Torgil Svensson
2006-12-16  1:49                                                                                                         ` Linus Torvalds
2006-12-16  2:12                                                                                                           ` Linus Torvalds
2006-12-16  8:50                                                                                                             ` Torgil Svensson
2006-12-02 20:12                                                                                   ` Martin Waitz
2006-12-01 22:55                                                                               ` Josef Weidendorfer
2006-12-01 23:07                                                                                 ` Martin Waitz
2006-12-01 23:30                                                                                 ` Linus Torvalds
2006-12-02  0:14                                                                                   ` Josef Weidendorfer
2006-12-02  0:33                                                                                     ` Linus Torvalds
2006-12-02  9:27                                                                                       ` Andy Parkins
2006-12-04 18:56                                                                                       ` Michael K. Edwards
2006-12-05  1:31                                                                                         ` Sam Vilain
2006-12-01 22:35                                                                           ` sf
2006-12-08 18:29                                                                           ` Jon Loeliger
2006-12-08 18:45                                                                             ` Sven Verdoolaege
2006-12-12  8:32                                                                             ` Andreas Ericsson
2006-12-01 17:14                                                                       ` Martin Waitz
2006-12-01 16:57                                                                     ` Martin Waitz
2006-12-01 18:08                                                                       ` Andreas Ericsson
2006-12-01 18:51                                                                         ` Martin Waitz
2006-12-01 13:51                                                           ` Stephan Feder
2006-12-01 14:58                                                             ` Martin Waitz
2006-12-01 15:47                                                               ` Stephan Feder
2006-12-01 16:54                                                                 ` Martin Waitz
2006-12-01 17:33                                                                   ` Stephan Feder
2006-12-01 18:48                                                                     ` Martin Waitz
2006-12-01 23:34                                                                       ` sf
2006-12-02 19:46                                                                         ` Martin Waitz
2006-12-01 19:17                                                                     ` Andy Parkins
2006-12-01 19:38                                                                       ` Martin Waitz
2006-12-01 21:04                                                                         ` Andy Parkins
2006-12-01 21:37                                                                           ` Martin Waitz
2006-12-01 21:54                                                                             ` Andy Parkins
2006-12-01 22:08                                                                               ` Martin Waitz
2006-12-02 10:04                                                                                 ` Andy Parkins
2006-12-02 13:50                                                                                   ` Josef Weidendorfer
2006-12-02 20:43                                                                                     ` Martin Waitz
2006-12-03  1:02                                                                                       ` Josef Weidendorfer
2006-12-02 20:40                                                                                   ` Martin Waitz
2006-12-02 13:14                                                                           ` Jakub Narebski
2006-12-02 13:08                                                                     ` Jakub Narebski
2006-12-02 12:48                                                   ` Jakub Narebski
2006-11-28 17:28                                   ` Daniel Barkalow
2006-11-28 18:08                                     ` Sven Verdoolaege
2006-11-28 18:37                                       ` Daniel Barkalow
2006-11-28 19:06                                         ` Sven Verdoolaege
2006-11-28 20:41                                           ` Daniel Barkalow
2006-11-28 21:10                                             ` Shawn Pearce
2006-11-28 21:32                                               ` Daniel Barkalow
2006-11-28 21:53                                                 ` Linus Torvalds
2006-11-20 22:49 ` Jakub Narebski
2006-11-21  7:21 ` Shawn Pearce
2006-11-22  5:29 ` Petr Baudis
2006-12-02 20:16 ` Jakub Narebski
2006-12-03  1:24   ` Robin Rosenberg
2006-12-03  1:31     ` Jakub Narebski
2006-12-03 12:22       ` Robin Rosenberg
2006-12-03 12:31         ` Jakub Narebski
2006-12-03 11:00     ` Jakub Narebski

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

  List information: http://vger.kernel.org/majordomo-info.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20061128210211.GI28337@spearce.org \
    --to=spearce@spearce.org \
    --cc=andyparkins@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=koreth@midwinter.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.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

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 read-only IMAP folder(s) and NNTP newsgroup(s).