svn迁移至gitlab最全流程
为了适应公司的发展规划流程,之前使用的版本控制器SVN需要迁移至新搭建的GitLab上,并且要保存历史版本和历史提交记录,现记录每一步的操作流程。
环境:svn服务端、GitLab、linux服务器
一、导出SVN用户列表
1、进入svn管理页面,右键Users,导出用户列表文件users.txt
2、将导出的users.txt文件移至linux服务器/home目录下
二、批量创建git账号
1、执行while read line;do echo "11111111 $line@suirui.com $line $line" >> user.txt;done < users.txt,生成如下格式的git账号文件user.txt
11111111 test1@suirui.com test1 test1
11111111 test2@suirui.com test2 test2密码 邮箱 姓名 别名
注:这里生成的文件,打开后会发现格式不对,有自动换行的情况,如下图
这里就使用notepad++工具,Ctrl+F搜索“\r”回车符,然后替换成无字符即可
2、使用root用户登录gitlab,按照如下操作生成秘钥(git版本不一样,调用接口的秘钥生成处不一致)
将生成的秘钥保存好,方便之后使用
3、使用 nano gitaddUser.sh 命令在/home 下创建gitaddUser.sh 脚本 ,内容如下:
#!/bin/bash
#gitlab用户文本
userinfo="user.txt"
while read line
do
password=`echo $line | awk '{print $1}'`
mail=`echo $line | awk '{print $2}'`
username=`echo $line | awk '{print $3}'`
name=`echo $line | awk '{print $4}'`
curl -d "password=$password&email=$mail&username=$username&name=$name&private_token=生成的秘钥" "http://127.0.0.1:9090/api/v4/users"
done <$userinfo
“http://127.0.0.1:9090/api/v4/users”这个地址是你的git地址+api路径,不同的版本会使用不同的api,最常见的是/api/v4/users和/api/v3/users
4、赋予sh脚本权限 :chmod +x gitaddUser.sh
5、执行sh 脚本:sh gitaddUser.sh
6、脚本执行成功后,进入如下界面,可以查看到导入的用户
三、迁移svn至gitlab
1、在/home下输入命令:while read line;do echo "$line=$line<$line@suirui.com>" >> user2.txt;done < users.txt;根据SVN的users.txt用户文件,生成与git用户有对应关系的user2.txt文件
2、 然后在本地创建一个文件夹,将user2.txt移入
3、右键空白处,点选git bash here进入git界面,输入命令
git svn clone svn地址 --no-metadata --authors-file=user2.txt 存放文件夹名 --username=有拉取svn代码权限的用户名
等待一段时间后,出现无报错此页面说明项目拉取完成,进入文件夹中可以查看到拉去的代码。
4、此时打开gitlab网页,创建一个项目
5、在git命令窗口,输入:cd进入文件夹,顺序执行以下两条命令
git remote add origin {刚刚创建的项目git链接}
git push -u origin master
执行完毕后,进入gitlab就能看到迁移过去的文件了,同时可以查看到svn历史提交记录及版本。
参考博客:https://blog.csdn.net/hnmpf/article/details/80531444、http://www.cnblogs.com/shawnpoo/p/SVN-cang-ku-qian-yi-daoGit-de-wan-mei-jie-jue-ban-.html感谢分享
更多推荐
所有评论(0)