We are trying to migrate from svn to git using svn2git utility (https://github.com/nirvdrum/svn2git). The utility seems to fail every time with below error. If anyone has seen the same error or have any better alternatives, please share.
command
svn2git https://xyz.xyz.com/svn/svnrepo/ --verbose --authors authors.txt
console output
Running command: git svn init --prefix=svn/ --no-metadata --trunk='trunk' --tags
='tags' --branches='branches' https://xyz.xyz.com/svn/svnrepo/
Running command: git config --local --get user.name
Running command: git config --local svn.authorsfile authors.txt
Running command: git svn fetch
Running command: git branch -l --no-color
Running command: git branch -r --no-color
Running command: git config --local --get user.name
Running command: git config --local --get user.email
Running command: git checkout -f master
error: pathspec 'master' did not match any file(s) known to git.
command failed:
git checkout -f master
P.S. My SVN repo URL is correct too, it's just above the trunk. I am trying this on Win7 64-bit machine.
There are pleny tools called
svn2git, the probably best one is the KDE one from https://github.com/svn-all-fast-export/svn2git. I strongly recommend using thatsvn2gittool. It is the best I know available out there and it is very flexible in what you can do with its rules files.The
svn2gittool you used is based ongit-svnandgit-svnis not the right tool for one-time conversions of repositories or repository parts. It is a great tool if you want to use Git as frontend for an existing SVN server, but for one-time conversions you should not usegit-svn, butsvn2gitwhich is much more suited for this use-case.If you are not 100% about the history of your repository,
svnevereverfrom http://blog.hartwork.org/?p=763 is a great tool to investigate the history of an SVN repository when migrating it to Git.Even though
git-svn(or the wrongsvn2gitin your case) is easier to start with, here are some further reasons why using the KDEsvn2gitinstead ofgit-svnis superior, besides its flexibility:svn2git(if the correct one is used), this is especially the case for more complex histories with branches and merges and so ongit-svnthe tags contain an extra empty commit which also makes them not part of the branches, so a normalfetchwill not get them until you give--tagsto the command as by default only tags pointing to fetched branches are fetched also. With the proper svn2git tags are where they belongsvn2git, withgit-svnyou will loose history eventuallysvn2gityou can also split one SVN repository into multiple Git repositories easilysvn2gitthan withgit-svnThere are many reasons why
git-svnis worse and the KDEsvn2gitis superior. :-)