迁移背景
早期的项目很多公司使用的是svn,但是svn在分支切换和集中式管理不适合目前的版本管理,多数公司都采用git作为新的版本管理功能(分布式、分支切换方便、快速)。
老的svn项目需要迁移到新的git上,又需要保留原来的提交记录。
以下讲解迁移步骤。
1、 svn与git用户映射
- 进入svn项目目录
cd svnproject
- 2.输出 SVN 所有提交过的人的名字
svn log --xml | grep author | sort -u | perl -pe 's/.>(.?)<./$1 = /'
输出结果
<author>wang1</author>
<author>wang2</author>
- 3.新建用户关系文本,并输入svn对应git上用户的信息
在当前目录新建文本
touch userinfo.txt
输入对应信息-请根据实际信息录入
SVN账号1=git账号1<email1@qq.com>
SVN账号2=git账号2<email1@qq.com>
2、 用svn信息导出git项目
- 1.输入以下命令,导出git项目
git svn clone svnurl --no-metadata --authors-file=userinfo.txt
命令解释
# svnurl 为svn项目对应的url地址。 例如: svn://svn.yoursvnaddress.com/XXXX
XXXX为导出的项目目录名称
# userinfo.txt 用户关系文本名称
- 2.进入目录,提交代码到git
#进入项目目录
cd XXXX
#绑定git远程路径 giturl为git项目对应的url地址
git remote add origin giturl
#提交所有代码
git push origin --all
至此完成SVN代码迁移到GIT,并可以查看到历史的提交记录
网友评论