SVN服务器迁移Git服务器-子目录

发布时间 2023-05-30 15:37:32作者: 流浪的夜空

背景

原使用SVN开发项目,由于svn管理极其混乱,单人管理权限,创建项目不利,无web管理,等诸多原因,于是需要将svn项目迁移到公有云的git服务器,由于svn权限管理集中,导致大家使用的时候就是一个项目下面创建多个子项目,或者不相关项目都在这个项目下,要求迁移后带有提交历史记录

操作

明确项目路径和trunk branch tag的含义,开始使用git svn命令进行迁移

更新作者对应表
svn log https://[SERVER]:[PORT]/svn/MainProject/code/trunk/Project1 -q | findstr /B /C:"r" > authors.txt
然后采用excel等文本处理器处理authors.txt为如下格式:
username=username<username@mail.com>
迁移转换
git svn clone --trunk=/Main/code/trunk/Project1 --authors-file=authors.txt https://[SERVER]:[PORT]/svn/adc_svn/MainProject/ Project1
提交到远端
git remote add origin https://github.com/<username>/<repo_name>.git
git push -u origin main

由于并不是使用标准的管理方案,于是手动制定trunk的位置,其实就是代码的位置,需要指定作者文件,否则会由于找不到对应关系停止clone,等待clone完成