Use git on existing SVN repo

git, git-svn, svn

Solution

I'd very strongly advocate for `git-svn`. Myself and some of my colleagues have attempted to use a Git repro over the top of a Subversion one, and it's a process made of pain and horror.

Admittedly this is for Subversion 1.6.x; I suspect it'd be better with 1.7.x, since that only has a single `.svn` directory.

Updating from the repository requires pulling the updates from Subversion, then committing them with Git. That's slow and tedious (admittedly it's fairly slow with `git-svn`, but at least that automates the process).

Plus, either you end up downloading every commit with Subversion and committing it manually to Git, or you end up committing bunches of Subversion commits to the Git repository, and `$deity` help you if you ever want to work on a Subversion revision between your Git commits.

Git can't handle empty directories, Subversion requires them for the format of its `.svn` directories. Which means you need to keep your `.svn` repositories outside the Git repository, so any `git checkout` operation will also need a separate `svn up`.

As you note, you'll need to commit everything seperately.

So, using Subversion and Git separately, you'll need to do pretty much every operation in both Git and Subversion. Which means everything takes longer, and you get all the disadvantages of both systems, while they both do a good job of screwing over each other's advantages.

Problem

I work with a legacy `svn` repo. However, I would like to enjoy the benefits of `git` on my local machine. - The first option is `git init` the root of my current repo, write code, and independently commit code locally (`git commit`) and remotely (`svn commit`). - The second option is `git-svn`, but I don't know if it's worth the troube of learning the nuances of a new tool. How should I go about this?

Original source