
2008/8/15 Ian Lynagh
You can explicitly tell Git about nested Git repos using http://www.kernel.org/pub/software/scm/git/docs/git-submodule.html. This essentially associates a particular version of each subrepo with every version of the repo that contains them, so e.g. checking out GHC from 2 weeks ago could check out the libraries from the same point in time.
We were talking about this last night on #ghc, and AIUI this doesn't play well with the in-tree branching style that is advocated, e.g. if you want to branch ghc and base then as you change between ghc branch X and Y, git won't automatically change base between branches X' and Y'.
If you change the submodules in branch X to point to the X' commit in base, and do the corresponding thing for Y and Y', I believe you /would/ get this behaviour (though you might have to remember to do "git submodule update" when switching.. this can probably be automated). Provisio: I'm also not a Git expert, but this is my understanding of how it works. Cheers, Max