SVN 迁移 Git 步骤
1. 获取提交历史人员信息
进入svn管理的服务文件夹:
代码语言:txt复制cd ExampleServer
保存提交历史人员列表:
代码语言:txt复制svn log --xml | grep author | sort -u | perl -pe 's/.>(.?)<./$1 = /' > users.txt
2. 创建用户映射 ,将 SVN 用户和 Git 用户对应起来:
修改users.txt
,将每一行都转换形式:
<author>svnusername</author>
修改为--->
svnusername = gitusername <email@address.com>
修改后的users.txt
长这样:
svnusername = gitusername <email@address.com>
svnusername2 = gitusername2 <email2@address.com>
3. 使用git svn clone
新建一个目录,拷贝刚刚生成的users.txt
:
mkdir git_svn
cd ExampleServer/
mv users.txt ../git_svn/
执行git svn clone
:
cd git_svn/
git svn clone svn_proj_url --authors-file=users.txt --no-metadata ExampleServer
如果出现下面错误:
代码语言:txt复制Can't locate SVN/Core.pm in @INC...
则执行一下:
代码语言:txt复制yum install subversion-perl
执行完后,git_svn
目录下会多出一个目录ExampleServer
。
4. 新建git库
在git库中下新建一个项目ExampleServer
:
https://github.com/gitusername/ExampleServer.git
5. push到远程git仓库
进入刚 clone 的新目录下:
代码语言:txt复制cd git_svn/ExampleServer/
push到远程:
代码语言:txt复制git remote add origin https://github.com/gitusername/ExampleServer.git
git push -u origin master