Skip to main content

Posts

Showing posts from March, 2011

Git+SVN at the Java User Group in Essen (ruhrjug)

Update: There's now a Xing signup for the event: https://www.xing.com/events/living-with-git-and-subversion-parallel-710010

I will be heading up to Essen next month to present Git+SVN at the ruhrjug event. The arrangers (Infaktum) are also behind GearConf, where I presented on the same topic last year.

The event takes place on 14th of April, and starts at 18:00 in the Glaspavillon Campus Essen:


View Larger Map

If you want to know the tricks of living with Git and Subversion in parallel, be there!

I'll be showing off all the steps, from getting started with git-svn, through the obligatory Git-Subversion mirror, to the final-migration-away-from-SVN. Hopefully there'll be time for showing off stuff I didn't get to at GearConf, as well as some good discussion.

Oh, by the way, if you've got any reference cases where you are also using git-svn, I would love to hear about it. I recently noticed that Gnu Cash are using it, and it would make me happy to hear if others have h…

The Dream of a Bi-directional Git-SVN mirror

This post is part of a series on Git and Subversion. To see all the related posts, screencasts and other resources, please click here

I just got an email asking me how one can set up a bi-directional Git-SVN mirror. It ended up being quite a long answer, so I'll post it here for the benefit of other Git-SVN readers with the same idea.

As you may know, I'm a proponent of my own Git-SVN setup.

I remember trying to go down the path of a bi-directional repository, but always ran into problems. Here is how it could work:




However nice this would be to have, it can be very hard to achieve in practice:

Git-svn requires working in a non-bare repository, so pushing to it is by default refused. You can work around this by doing this in the target sync repo:

git config receive.denyCurrentBranch ignore

You also have to automatically perform a git reset --hard in the syncing repo after each push (by some git hook?), because the work-dir is considered dirty when it is out of sync with the r…