I have a flat svn repository which looks like:
my_repo/
├── file1.c
├── file2.c
├── file3.c
└── README
This repo has no branches, or tags a
The problem is with svn2git
's --rootistrunk
argument. Instead of that, try this:
svn2git svn+ssh://user@svn.example.com/projects/my_repo --trunk / --notags --nobranches --authors users.txt --verbose
Hit same issue with an old 'flat' SVN repo, following worked with git v2.20.1: (following recipe on http://www.sailmaker.co.uk/blog/2013/05/05/migrating-from-svn-to-git-preserving-branches-and-tags-3/ )
git svn init <SVN https URL> --stdlayout --prefix=svn/ -T /
git svn fetch --all
I had the same problem. Not standard svn repository: no trunk, no tag, no brunch. I checked all possible options of svn2git but didn't have success. As svn2git is just ruby wrapper for git svn, I tried directly git svn and it was ok. Here is what I have done.
Init empty git dir and give svn repository path and the relative paths of trunk, tags and brunches. In my case it is / as I don't have any of those.
1. git svn init http://svnmydomain.com/urlpart/projectname --trunk=/ --tags=/ --branches=/
If svn repo is password protected you will have to supply username and password arguments to the command above but in most cases it won't work as it's a little bit buggy. Instead svn checkout in the current folder. git svn will use svn cash and won't ask you for password.
Check that git config is ok. Type
2. git config --list
You should see this:
svn-remote.svn.url=http://svnmydomain.com/urlpart
svn-remote.svn.fetch=urlpart/projectname:refs/remotes/origin/trunk
svn-remote.svn.branches=urlpart/projectname/*:refs/remotes/origin/*
svn-remote.svn.tags=urlpart/projectname/*:refs/remotes/origin/tags/*
If git config is not correct, fix it manually by executing
git config <key> <value>
Now when git config is ok you should fetch data from svn and push it to git server
3. git svn fetch
4. git remote add origin git@gitdomain:url/gitproject.git
5. git add .
6. git commit -m "merge from svn"
7. git push origin master
If some people continue to work in svn, you will need to synch svn with git constantly. To do it type:
8. git svn rebase
9. git push origin master