svn迁移到gitlib并保留之前的提交记录

原有项目是存放到svn进行管理,最近考虑到项目组内统一管理打算迁移到gitlib上,折腾了好长时间,终于搞定了。再次记录一下,有相同需求的小伙伴可以借鉴一下。前提需要安装git,过程很简单此处不再重复唠叨

第一步,gitlib创建项目

在gitlib中点击新建project,出现新建项目界面

2885b049845edfd908ed92d04328bf2d27b.jpg

填写完信息后点击“Create project”按钮,完成项目的创建

第二步,向gitlib项目中添加项目成员

1、找到settings下面的members功能,如图

bf4d8df20f1fc42c2ad743c06ee7e34839d.jpg

填写用户的git账户,然后点击“add to project”即可

aba3c1679bd8082c2424006e9fd18491403.jpg

 

2、将新添加的人员设置为开发人员

fb2344465cfa2bae13061cd9982c40f9e02.jpg

第三步,迁移svn代码到gitlib项目中

在正式开始之前我先说明一下我用的环境,我是用的是Linux系统,centos7

1、安装git-svn

使用安装git-svn

# yum install -y git-svn

2、获取svn项目的提交人信息

在Linux的随意一个文件夹内,使用以下指令获取提交人员记录信息

# svn co --username test --password test https://svn地址/  code
# cd code
# svn log --xml | grep author | sort -u | perl -pe 's/.*>(.*?)<.*/$1 = /' > /root/users.txt

这里说明一下,--username 后面的test代表svn登录账户,--password 后面的test代表svn登录账户的密码 ,svn地址写实际的地址

执行完以上指令后,会在/root目录下面生成一个users.txt的文件,如下图

9d478fe70be5bf8275989c2bbcab544f9cf.jpg

3、对获取到的users.txt进行修改,刚才获取的用户为之前svn提交的用户信息,需要在=后面补充git账户信息:用户名 <邮箱>

使用vi命令进行编辑users.txt文件

# vi /root/users.txt

修改完后的文件如下图

5faae10ec0db518ce71c95b627ddbc5ac01.jpg

使用wq!进行文件保存

4、删除code文件夹。成功获取users.txt文件后,此时的code文件夹就不在需要了,可以使用rm指令删除

# rm -rf code/

5、用git克隆svn项目,采用如下指令

# git svn clone https://svn地址/   --authors-file=/root/users.txt  --no-metadata  项目名

这里说明一下svn地址就是你的svn保存项目路径,后面的项目名就是刚才在gitlib中创建的项目名称

6、进入项目

# cd 项目名

7、将本地git仓库指向远程git仓库

# git remote add origin http://git项目地址/xxx.git

8、更新本地git仓库,因为在创建项目的使用勾选了初始化项目,项目会创建一个readme.md文件。不更新本地库会导致提交出现问题

# git pull origin master

过程会提醒你输入git账户及密码,正常输入就可以

9、向远程仓库提交代码

# git push origin --all

过程同样会提醒你输入git账户及密码,正常输入就可以

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

下面是鉴证奇迹的时刻,当当当当。之前的svn提交记录都在里面,大功告成。

58aac0cb5ab5a5f40aef6e0cab304904222.jpg

转载于:https://my.oschina.net/lijinzhao/blog/3051168

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值