Git and Subversion

There are many people who want to use Git, but are forced to stick with Subversion for various reasons. Git-svn gives us the opportunity to migrate away from Subversion, but setting up a two-way sync is less than trivial. On this page I've documented the best way I've found so far for how to live with Git and Subversion in parallel.

Vote for it on DZone or Digg it if you think more people should know about it.

You can also show your appreciation with flattr using the button below:


Flattr this

Living with Git and Subversion in Parallel from JavaZone on Vimeo.

Notes from the talk are in this document.


I've recorded some screencasts on the subject:

Blog posts

I've blogged quite a few posts on the topic:

  1. A big rough introduction to distributed source control and Git
  2. Why and how clone of a Subversion repo into a Git repo (aka SVN mirror)
  3. Sharing a Git SVN mirror in a team
  4. Sharing a Git SVN mirror in a team clarifications
  5. Git and Subversion summary
  6. Git-SVN mirror with branches
  7. The Dream of a Bi-directional Git-SVN mirror
  8. Git-SVN mirror without the annoying update-ref

You can also see all blog-posts tagged with git-svn.


I've created a 60-120 minute talk that summarizes the above setup. It's mostly a live demo exercise, with some motivation, practical tips and strategies. If you want me to do it at a local user-group or meetup around Bonn/Cologne, give me a ping.

GearConf 2010

I presented at GearConf 2010, the talk was called "Living with Git and Subversion in parallel".

RuhrJug 2011

I also presented the same talk, although in an extended version at the Essen JUG meeting in April 2011.

GearConf 2011

Apparently my talk was so well received the year before, that they invited me to repeat the talk at GearConf 2011. The talk was about 50 minutes, and included Jenkins and Github integration. The audience rated me as a 1,5 (using German school grade system, where 5 is bad and 1 is good).


One last time I did the presentation at JavaZone 2011. The session was recorded and put online (that's the video on top of this page).