将 SVN 项目保留历史提交信息迁移至 git 中。
在本地 SVN 代码的文件中,右键打开 Git Bash 使用以下命令获取到所有提交者的名字:
svn log --xml | grep "^<author" | sort -u | \awk -F '<author>' '{print $2}' | awk -F '</author>' '{print $1"\r"}' > userinfo.txt

导出的提交人:

将要迁移的项目通过 svn clone 到本地:git svn clone -s 项目地址 --no-metadata
此处 -s 表示 svn 标准目录结构:trunk、branches、tags 的定义的项目
如果不采用标准结构,则需要如下参数:–trunk=”svntrunk” –branches=”svnbranches“ –tags=“svntags”
本项目非标准结构,在本地文件夹中,右键打开 Git Bash,输入命令:
git svn clone https://192.168.0.222/svn/jsb --no-metadata --authors-file=userinfo.txt
历史提交信息转换完成

# 关联 GitLab 远程仓库
git remote add origin ssh://git@106.xx.xx.xxx:22222/dengtt/jsb.git
# 推送到远程仓库
git push -u origin --all
git push -u origin --tags
- 本文作者:Nine
- 本文链接:https://blog.nine.gt.tc/2020/03/11/svn-project-transfer-git/
- 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)