Search code examples
git-svn

git-svn dcommit error: unable to determine upstream SVN information


I m trying out git-svn and I am getting the following error. What I've done so far is

 git svn init -T <my svn repo> 

then I've been committing to my repository with

 git commit -a

then once I did a few of those I did a

 git svn fetch

and then I tried a

 git svn dcommit

However, that fails with

Unable to determine the upstream SVN information from HEAD history. Perhaps the repository is empty

I can also see that the files in my file system are not marked as being used by svn (not sure if this should happen or not) though. If I browse the svn repository (with repo browser) I can see that the original files are there.

After this original failure I tried rebasing without much success (it throws some other error).


Solution

  • The git svn commands are similar to dealing with a normal remote (the svn remote is named git-svn). fetch just downloads commits from the remote, it doesn't connect them to your tree in any way. It will work if you fetch right after initing, since you don't have a tree yet, but you committed first. You want to use git svn rebase, which will rebase your tree onto the svn head. Normally you git svn fetch right after git svn init, or just use git svn clone, which does both. Once the initial repository is set up you can just use git svn rebase all the time, which fetches and rebases in one operation