概述
项目开发前期是用自有 SVN 进行项目管理的,开发完成后,因客户要求,需要将源码提交到客户提供的 Gitlab,故进行项目迁移。
主要步骤
1. 账号对应
2. 拉取 SVN 代码记及日志
3. 提交项目到 Gitlab
第一步:账号对应
SVN 账号使用的是用户名称,例如:zhangsan, Git 使用的是账号和邮箱,例如:zhangsan <zhangsan@email.com>
Git 提供了 svn 账号导出命令,需要安装 Git,打开 Git Bash ,执行如下命令:
svn log 你的SVN项目的url -q | awk -F '|' '/^r/ {sub("^ ", "", $2); sub(" $", "", $2); print $2"="$2" <"$2"@email.com>"}' | sort -u > ./svn2git.txt
需要注意 @email.com 需要指定为自己邮箱后缀,./svn2git.txt 是导出的 svn 账号路径,需要提前创建好文件,文件名称自定义即可。账号导出格式如下:
zhangsan=zhangsan <zhangsan@email.com>
lisi=lisi <lisi@email.com>
wangwu=wangwu <wangwu@email.com>
第二步:拉取 SVN 代码记及日志
使用 git 内置的 git svn 工具
执行如下命令:
git svn clone 你的SVN项目的url --no-metadata --authors-file=D:/project/code/svn2git.txt 你自定义的项目名
命令执行完成后将 svn 的提交记录转换成 git 的提交记录,并在自定义的项目名目录下生成代码
第三步:将代码提交的 Gitlab
进入到 git svn 执行命令拉取到的代码目录
打开 Git Bash 执行命令:
与远程仓库建立连接:git remote add origin git仓库地址
提交代码:git push -u origin master
如果提交失败,则强制提交 git push -u origin master -f
注意:强制提交会将原 gitlab 上代码覆盖掉