In my last post I mentioned how Git’s stash feature finally convinced me that it made sense in my subversion world. Well, once I was well underway on my new project, I’d reached the point where I was ready to commit version 0.1 to subversion. Googling for how to commit a Git project into Subversion will lead you to a few resources. The one that was spot on with a minor wrinkle was this post. I’ve taken what Brandon posted there and condensed it here with the update for the –root option for the rebase command.
Step 1: Create the project folder in svn with the recommended layout
Step 2: Backup your project’s git repo just in case. From within your project’s root directory run
$ git branch master.bak master
Step 3: Link your git repo to the newly created svn location
$ git svn init -s http://my.svnserver.com/repos/myproject
$ git svn fetch
Step 4: Put all our commits onto the remote trunk repo
$ git rebase –onto trunk –root master
Strp 5: Finally commit everything to subversion
$ git svn dcommit
All git commits along with the commit history will make it to svn. Except the timestamp of the individual commits will not be preserved.