原有项目是存放到svn进行管理,最近考虑到项目组内统一管理打算迁移到gitlib上,折腾了好长时间,终于搞定了。再次记录一下,有相同需求的小伙伴可以借鉴一下。前提需要安装git,过程很简单此处不再重复唠叨
第一步,gitlib创建项目
在gitlib中点击新建project,出现新建项目界面
填写完信息后点击“Create project”按钮,完成项目的创建
第二步,向gitlib项目中添加项目成员
1、找到settings下面的members功能,如图
填写用户的git账户,然后点击“add to project”即可
2、将新添加的人员设置为开发人员
第三步,迁移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的文件,如下图
3、对获取到的users.txt进行修改,刚才获取的用户为之前svn提交的用户信息,需要在=后面补充git账户信息:用户名 <邮箱>
使用vi命令进行编辑users.txt文件
# vi /root/users.txt
修改完后的文件如下图
使用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提交记录都在里面,大功告成。