公司一直用SVN,现在要迁移到gitlab上面,要求保留SVN上的提交记录。
可以迁移SVN的日志和分支
一、下载安装git,并汉化。三个安装包。
二、账号对应
SVN使用的是用户账号展示的提交记录,但是git使用的是账号和邮箱进行人员确认的,因此我们需要使用将二者进行对应。
安装后右键,选择Git BASH Here。
执行如下命令,这是使用的Linux的awk命令导出的svn账号信息格式化的,当然我这里用的是163邮箱,你可以自定义邮箱,打开看下是不是和上面的文本内容格式是一致的。
svn log 你的SVN项目的url -q | awk -F '|' '/^r/ {sub("^ ", "", $2); sub(" $", "", $2); print $2"="$2" <"$2"@163.com>"}' | sort -u > ./svn2git.txt
接下来使用git-svn拉取你的SVN项目
git svn clone "你的SVN项目的url" --no-metadata --authors-file="./svn2git.txt" -s 你自定义的项目名
-s:为svn把分支转换为git
使用 git branch -a 可以查看本地分支和远程分支情况
把红色的变成本地分支:
$ cp -Rf .git/refs/remotes/tags/* .git/refs/tags/
$ rm -Rf .git/refs/remotes/tags
$ cp -Rf .git/refs/remotes/* .git/refs/heads/
$ rm -Rf .git/refs/remotes
提交项目到gitlab,新建一个项目
复制克隆地址
在SVN已经转换好gitlab的文件下,右键选择
以上步骤就可以完成SVN迁移gitlab
对你有帮助,点个赞,如有不懂,可以私信。