I was thinking about the issue of Rubyforge only supporting a single
git repo per project, and the issue of subprojects with git in
general. While certainly imperfect this idea occurred to me…
Make each subproject it’s own git repo inside a master directory which
is also a git repo. Git ignores the .git directory in subdirs (you can
not add these files even if you try explicitly!). But we could trick
it, if we rename the .git directory. So we would have:
When working on a subproject, we first rename .gitsub to .git, do our
work and then when finished rename it back to .gitsub so the master
git repo will track it. It’s an added step but could work. At the top
level we just mass commit the whole as needed. Perhaps some porcelain
could be made to automate this procedure?
One caveat, I don’t see a way to clone just one subproject --you have
to clone the whole master repo, but that’s not the end of the world.
I know it seems crazy to double track the repos, but at least it’s
pretty simple and is a generic solution.