前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >svn迁移git的一次尝试

svn迁移git的一次尝试

原创
作者头像
jackieluo
发布2018-09-13 13:21:39
1.3K0
发布2018-09-13 13:21:39
举报
文章被收录于专栏:Jackie技术随笔Jackie技术随笔

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • SVN 迁移 Git 步骤
    • 1. 获取提交历史人员信息
      • 2. 创建用户映射 ,将 SVN 用户和 Git 用户对应起来:
        • 3. 使用git svn clone
          • 4. 新建git库
            • 5. push到远程git仓库
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档