参考:GIt - 迁移到Git
构建user.txt
关联svn用户和git用户。
svn log ^/ --xml | grep -P "^<author" | sort -u | \
perl -pe 's/<author>(.*?)<\/author>/$1 = /' > users.txt
用git svn导入svn库
如果svn库不是标准的trunk/branches/tag目录结构,则需要手动指定对应的trunk/branches/tag。如果branches目录包含了多个项目的分支,可以把指定项目的所有分支切到新的branches目录中。
git svn clone http://my-project.googlecode.com/svn/ \
--authors-file=users.txt --no-metadata -s my_project
创建本地分支
git for-each-ref refs/remotes | cut -d / -f 3- | grep -v @ | while read branchname; do git branch "$branchname" "refs/remotes/$branchname"; git branch -r -d "$branchname"; done
提交到远程
git remote add origin ssh://git@my-git-server:myrepository.git
git push origin --all
网友评论