Subject: Re: Notes on Using Git with Subprojects

From: A Large Angry SCM <[email-masked]>
Date: Wed, 27 Sep 2006 21:48:47 -0700

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?