JT and I have been working on our staticSearch code in a GitHub repo. We're also both using it in projects housed in other repos, including Keats and DVPP in the UVic Subversion repos. In the process of managing that, I've found a number of useful things that I think are worth recording.
You can access GitHub git repos as if they were svn repos, using standard svn. That's useful for people who may be OK with svn already, but wary of learning git.
But because you can do that, you can also add a GitHub repo as an external in a Subversion repo. I set up a folder in the Keats repo called "staticSearch" which is defined as an external with the URL:
https://github.com/projectEndings/staticSearch/trunk
This URL tracks the default branch of the project on GitHub. The default branch in this case is the master branch. But I can switch the branch that's being tracked to another one, for example:
https://github.com/projectEndings/staticSearch/branches/dev
which is what I'm doing today. Once you've set up the external, any svn update will bring down the latest changes to the staticSearch project into the local copy of the Keats repo.
So far so good. But you can also edit stuff in that folder, and svn-commit it back to the Github repo, where it shows up as a commit in git. That means it's easy to work on the staticSearch code in the context of another project (where you have all the real data to work with) and commit your changes back to the repo; then when you've finished your dev branch work, you can merge it into master, then reset your project external to track the stable master branch instead, and then go away and work on the staticSearch dev branch in the context of some other repo.
This is really useful, and so far I'm seeing no unwanted side-effects.