Lately, I’ve been using Git as my source code management tool of choice, and I’ve especially come to love the Subversion integration provided by the git-svn command. It turns out that Git is an excellent façade on top of Subversion, providing a bunch of features I really enjoy: things like local commits, the ability to reorder commits before sending them upstream, and of course the fantastic branch and merge support for my little local experiments.
One of the projects I track using git-svn is Dojo. Tracking Dojo is a bit tricky as we use a non-standard Subversion repository layout, with each of the five main components of the overall toolkit having it’s own trunk, branches, tags triad, but release tags and most branches are actually handled in tags and branches directories located off the root of the repo. So, there are tags and branches local to each subproject and then there are overarching tags and branches that apply to all five sub-projects at once. It can get a bit confusing.
Anyway, you don’t have to deal with it. I’m putting my Git mirror of Dojo up on github for anyone to fork and enjoy. The mirror is currently updated when I feel like it, but I should have some scripts in place to update it every hour or so. The mirror itself is broken up much like the Subversion repository with one Git repository per sub-project in Dojo, and the bigger Dojo project which knits them all together using git submodules.
If you find this handy, do let me know, or just fork the project on github.
freelock on the #dojo channel on freenode did something similar but took it quite a bit futher. He found a way to pull all of the dojo subprojects into one git repo, and keep up to date with the overarching branches and tags. I definitely recommend taking a look at his approach if you find this whole thing interesting.