工作总结(十二)——迁移svn单项目到gitlab上,保留历史提交记录

发布于:2025-04-19 ⋅ 阅读:(13) ⋅ 点赞:(0)


前言

本系列文章主要记录工作中一些需要记录的内容


一、目的

因为一些原因,我需要将svn库上的某个项目迁移到公司的gitlab库管理平台上,本文章就是记录操作过程,方便以后遇到同样的问题直接处理

二、操作步骤

1.创建项目库

登录gitlab网页版,创建一个空白的项目库,如下图所示,点击创建仓库就行,不要初始化库
在这里插入图片描述
然后等待创建成功,复制空白库的地址

2.复制历史提交者账号

1.通过svn在磁盘任意位置检出要迁移到gitlab中的项目(本地已有的话就不用了)
2.找到项目所在目录,右键执行git bash here,打开git命令控制台,输入如下命令

svn log --xml --quiet | grep author | sort -u | \
perl -pe 's/.*>(.*?)<.*/$1 = /'

3.执行完后,将会输出待迁移项目的历史提交人的信息,新建svn_user_convert.txt文件,将历史提交人的信息拷贝到这个文件中,格式如下
名字 = 名字<邮箱号>

zhangxiaonan = zhangxiaonan <zhangxiaonann@xx.com>
zhulinfeng = zhulinfeng <zhulinfeng@xx.com>

3.复制待迁移项目以及历史记录

1.重新选择一个目录,创建demo文件夹,将svn_user_convert.txt文件拷贝到这个demo目录下
2.在新目录下打开git bash here
3.在git命令控制台下输入如下内容

git svn clone svn中迁移项目的全路径 --no-metadata --authors-file svn_user_convert.txt

4.等待拷贝,因为需要拷贝历史提交记录,如果提交记录比较多,耗时就比较长,注意等待,另外控制台会显示复制的历史提交记录

4.push到gitlab远程仓库

1.进入demo文件夹,右键git bash here ,输入如下命令

git remote add origin 之前在gitlab上创建的空库的地址
git push -u origin master

2.上述两条命令执行完后,进入gitlab平台,查看历史记录,就会发现svn上的项目已经迁移到gitlab上了,且history上显示之前的历史提交记录


总结

至此,本文章结束

下一篇:暂无


网站公告

今日签到

点亮在社区的每一天
去签到