svn迁移git的一次尝试

2018-09-13 13:21:39 浏览数 (1)

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,将每一行都转换形式:

代码语言:txt复制
<author>svnusername</author>
修改为--->
svnusername = gitusername <email@address.com>

修改后的users.txt长这样:

代码语言:txt复制
svnusername = gitusername <email@address.com>
svnusername2 = gitusername2 <email2@address.com>

3. 使用git svn clone

新建一个目录,拷贝刚刚生成的users.txt

代码语言:txt复制
mkdir git_svn
cd ExampleServer/
mv users.txt ../git_svn/

执行git svn clone

代码语言:txt复制
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

代码语言:txt复制
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

0 人点赞