I\'ve read a great deal of \"go from svn to git\" and other \"git-svn workflow\" articles on the web, and still I think they often deal with overly simple situations. They a
I've been experimenting a lot with this lately, and think I managed to come up with a setup that somewhat works. Yes, it's a strict rebase-only regime, yes it's complicated, but you do get to use Git for working locally (speed, history, stash, index, etc).
You can use branches behind the scenes when you collaborate with other Git users in your team I think, but haven't personally experimented too much with this. As long as you linearize the log before dcommitting it should work.
Here's the short version (repeats a lot what's been already said):
git svn init svnurl
to configure the git-svn remote, andgit update-ref refs/remotes/git-svn refs/remotes/origin/master
so git-svn has a pointer to a revisiongit pull --rebase
git svn dcommit
first have to repeat the update-ref
above in case of newer revisions coming from SVN.There's an illustration of the workflow on this page (I need more reputation points before I can inline the image). Update: Here we go: