Git-svn Xfce Repositories

I recently started messing around with git, partly just to see what all the fuss is about, and partly because I want an easy way to do ‘offline commits’ when I don’t have an internet connection (I spend a decent amount of time on planes and in airports, and sometimes in wifi-less cafes with my laptop). I’ve looked at SVK, but I’m not a huge fan, and it seems ridiculously complicated for what it does (or rather, what I need it for). It also means learning another tool that’s only useful for a very small thing.

So: git. It’s been hyped like crazy since its inception, and frankly I’ve avoided it mainly because of the hype. But I’m surprised at how much I like git. Being able to have lots of little throwaway branches to do various related tasks on is really useful, and merging them back to the main branch is trivially easy. The offline operation is obviously a great bonus.

To make things even better, I was absolutely thrilled when I found out that git comes with a sub-app called ‘git-svn’. In a basic sense, it’s a ‘svn2git’ script that lets you import all of your commit history from a svn repository into a git repository. But it’s so much more. It’s bidirectional, so after you create the git-svn repository (which is really just a git repository with a bunch of extra info to keep things in sync with svn), you can continually update your local repo as changes are made to the master svn repository, and you can push changes in your local repository up to the master svn server. And when pushing changes, it actually does one svn commit for each local git commit, so your local git history gets replicated on the server.

Anyhow, git-svn is a little hard to figure out at first, so I figured I’d ‘convert’ all the Xfce core core modules into git-svn repos and post them so other people don’t have to figure it out. Also, doing the conversion over a network via http or svn+ssh takes quite a long time (and wastes quite a lot of bandwidth), and I can do them locally on the svn server. You can grab them here. Please read the README in its entirety first, as these repos will not work properly with the Xfce svn repo out of the box, and there are a few extra git commands you’ll need to know to interact with the svn server.

Good luck and enjoy. If you have issues with them, please don’t comment here, and don’t email me. Email the Xfce dev list instead.