login
Header Space

 
 

Re: [RFC] Submodules in GIT

Score:
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
To: Josef Weidendorfer <Josef.Weidendorfer@...>
Cc: R. Steve McKown <rsmckown@...>, Linus Torvalds <torvalds@...>, <git@...>
Date: Friday, December 15, 2006 - 7:43 pm

On 12/15/06, Josef Weidendorfer <Josef.Weidendorfer@gmx.de> wrote:

I'm very open to suggestions here, but the concept growing in my head
is based around Linus 'module'-file and keep things simple. A git
configuration file that specifies:
* link name for reference
* local path to link
* submodule source
* submodule path to tree/blob
* submodule commit / HEAD / branch
* options (depth-limit , ...)

I'm reconsidering having the path-name in the link, it should be
sufficient to have two SHA1's, one for the commit and one for the
tree/blob. Super-module should have the tree/blob in it's database so
that the link part only is there for version information and reference
(checking dirty state or history on the submodule). This way it easy
to clone the super-project and use it without having to map up all
sub-project sources. Sub-project sources is not important for version
information and could always be specified in the project in a
README-type of file.



That would be a change in the modules file, maybe through a command
that also fixes the link. The link will have to be updated in the
index and commited as normal.



Since we have the SHA1 (this is what we're using) and tree/blob
information in the super-modules database the change itself is not a
problem. The problem is to track renames/moves and your remove case in
the submodule. The tool that tracks the submodule should probably
warn/exit here and we would fix up the modules file manually.



One of complex situation here as I see it is the ability to handle to
track/checkout only a subset (tree/blob) of the submodule. This is
also quite an important feature - in my example it means the
difference of tracking one header file versus the whole source.



If we can do path-limiting checkouts on a repo (module) we also can do
it on a sub-module since they are exactly the same. This is a very
powerful feature and it'd be a huge waste if it wasn't allowed for a
super-module to do on submodules.



What if we have no control of the submodule?  This can be tracked from
upstream, sourceforge, another company, etc. The submodule will often
live their own life and could be X, kernel, gcc, cairo, whatever, ...



If we disregard the commit info, the link will act exactly as a normal
tree/blob. Git can know we're moving a subproject by watching the
module file. The main problem is to keep modules file up-to-date with
reality. We could enforce module file validity by disallowing such
operations and let the user do a "force" operation which also alters
the modules file.



The symlink only exists in the modules file. We only have the SHA1's
at the tree-level and there we have everything underneath the
tree/blob SHA1 in our database. We will only know if the modules
symlink file is dangling next time we fetch from the submodule - here
we would notify the user but our database is still consistent.



It makes no sense because the user seem to have act irrationally. The
commit-chain is completely valid as it has tracked the correct history
of the builds. I can't see any problems here, the build-project is
independent of the source-project with it's own history. We can hope
the user has given good explanations for his/her actions in the commit
messages though.


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