环境:
Centos 6.x
总的来说,从SVN迁移至Git共有以下几步:
1)确保SVN的auth.conf文件里的每个user都在Git将会用来配置提交历史的文件里面有对应的名字和邮件地址
2)创建一个本地的Git仓库
3)将本地Git仓库连接到远程的SVN仓库
4)配置Git的提交历史用户名
5)开始从SVN获取代码
6)将本地Git仓库连接到远程Git仓库
7)推送本地仓库代码到远程仓库
详细步骤:
生成第4步会用到的用户名文件
A. 通过以下命令获取SVN仓库
#svn checkout --username xxxx SVN-REPO-URL
B. 在获取的仓库里,运行以下命令生成authors.txt文件
#svn log ^/ --xml | grep -P "^<author" | sort -u | perl -pe 's/<author>(.*?)<\/author>/$1 = /' > ../authors.txt
C. 以下面的格式编辑生成的authors.txt文件
SVNUser = [GitUser_FullName] <GitUser_Email> //GitUser_FullName是可选的
创建本地Git仓库
#mkdir folderName
#cd folderName
#git init
将本地Git仓库连接到远程的SVN仓库
#git svn init http://svn.com/proj --no-metadata
配置Git的提交历史用户名
#git config svn.authorsfile ~/authors.txt
开始从SVN获取代码
#git svn fetch
将本地Git仓库连接到远程Git仓库
#git remote add origin SERVER_REPO_LOCATION
推送本地仓库代码到远程仓库
#git pull origin master
#git push origin master
注:
常见错误1:403 Forbidden Error
解决方法,运行以下命令:
#git remote set-url origin https://[email protected]/user/repo.git