Create a users.txt
file. It will be used to map the SVN users to an email.
For example:
1
2
|
l.lin = Louis LIN <louis.lin@yopmail.com>
foo.bar = Foo BAR <foo.bar@yopmail.com>
|
Execute the following command:
1
|
git svn clone --trunk=/trunk --branches=/branches --tags=/tags --authors-file=users.txt http://<path_to_svn_project> <project_name>
|
It will only create the master
branch in local.
So you will need to create the tags using the following command:
1
2
|
git for-each-ref refs/remotes/origin/tags | cut -d / -f 5- | grep -v @ | \
while read tagname; do git tag "$tagname" "origin/tags/$tagname"; git branch -r -d "origin/tags/$tagname"; done
|
You might need to adapt the command a little bit if your branch tags are not called remotes/origin/tags/<tagname>
.
Then you will need to create the branches using the following command:
1
2
|
git for-each-ref refs/remotes/origin | cut -d / -f 4- | grep -v @ | \
while read branchname; do git checkout -b "$branchname" "origin/$branchname"; done
|
Finally, add your remote and push all:
1
2
3
|
git remote add origin https://<path_to_git_project>
git push --all
git push --tags
|