From: A Large Angry SCM Date: Thu, 28 Sep 2006 04:48:47 GMT Subject: Re: Notes on Using Git with Subprojects Message-ID: <451B542F.8060205@gmail.com> In-Reply-To: <20060927233639.GE21839@spearce.org> Shawn Pearce wrote: [...] > - Git Porcelain should help the user. > > Git operations should translate down through lower level projects > when possible, and lower level project changes should push up > when possible. > > E.g. git-fetch in a higher level repository should percolate > down into the lower level repositories automatically. Ditto with > git-checkout and probably git-push. git-commit in a lower level > repository probably should update the specification file(s) > in the higher level repository but not commit the higher level > repository. I think recursing through all subprojects for most Git commands is actually the exception. Plus, porcelains aren't going to help much past the first subproject that isn't Git managed. [...] > However an annoted tag probably should not be able to be created > on the higher level project unless all lower-level subprojects > are referenced by tags (or the equivilant) in their SCM. Which > implies using a "stable tag" in CVS, a "/tags/foo@rev" in SVN, > or an annotated tag in Git and updating the specification file(s) > to reflect that. I fail to see a reason for this restriction. Each project should be managed separately. Also, how do you enforce the restriction on other VCSs?