# me and my git-svn

I recently switched a bunch of my projects over to git. Why? All the cool kids are doing it, I figured I'd give it a shot. Either way I ran into a few bumps with the git-svn stuff. Everything went really well until I tried to push back my changes from git. I'd been committing changes to my repo and pushing them to github/hasno without issue. I ran into errors when I tried to git-svn dcommit.

Here's what I'm currently calling the right way, as usual ymmv:

1. init if you haven't done i already, check .git/config for an svn-remote entry...
git-svn init <repo url>
2. pull the svn revision information. a bunch of info should scroll by matching svn revisions to git sha1 revisions.
git-svn fetch
3. this will yeild a list of local & remote branches, you should see trunk in the list
git branch -a
* master
origin/local-svn
origin/master
tags/release-0.1.23
tags/release-0.2.42
tags/release-0.2.44
tags/release-0.2.50
trunk

4. switch to a local branch based on the trunk remote branch
afaik you really don't want to be doing any of this type of stuff in a remote branch
git checkout -b local-svn trunk
5. now we need to pull your local changes from your master branch to your local-svn branch
git merge master
it's worth noting that you could do a git rebase, but when I tried that I couldn't use git-svn dcommit
6. go through and merge any conflicts. then git commit. at this point you can git dcommit

So if all that was how I got it working, what did I run into along the way... Well I'm glad you ask. Here's a list of errors and the reason for them afaik:

Unable to determine upstream SVN information from HEAD history
You have a recent commit that doesn't have any history in .git/ref/remote/svn or .git/svn. It also doesn't have the git-svn-id: key in the commit message.
[svn-remote "svn"] unknown
Did you manually create the svn-remote entry, or specify a different name? If so you need to pass that on to the commands, they seem to assume it's named svn.
Somethings amiss with your svn-remote entry in .git/config