I'm experimenting with using a Subversion repository through Git. That way I can keep better track of my own (experimental) work, without polluting/destabilizing the central Subversion repository with small incremental commits. Git comes with a svn sub-tool that takes care of all the interfacing between the local git repository and the central Subversion repository. Mainly for my own reference, I'll collect some pointers and tricks for using this git-svn tool here. Maybe it's useful for other too.

Check out/import/starting

Create a fresh git-svn working copy/repository, and tell it where the subversion repository is:

mkdir marsyas-git-svn
cd marsyas-git-svn
git svn init https://marsyas.svn.sourceforge.net/svnroot/marsyas/trunk

This will download nothing. Use the fetch command to so. As importing the whole subversion history is not recommended (it could take a lot of time), you should specify from which subversion revision you want to start tracking:

git svn fetch -r3463

Daily usage

Getting the latest revision from subversion (like svn update):

git svn rebase

Commit your local changes, you've been managing with git:

git svn dcommit

Further reading

  • http://flavio.castelli.name/howto_use_git_with_svn
  • http://utsl.gen.nz/talks/git-svn/intro.html