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

背景

原使用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完成

错误处理

can't create session unable to connect to a repository access forbidden
删除 .subversion/auth/svn.simple下的文件, 我发现有两个地方有这个文件,分别为
C:\Users\Administrator\AppData\Roaming\Subversion\auth\svn.simple
C:\Users\Administrator.subversion\auth\svn.simple
说是删除下方的可以工作,我最后采用的方案是删除subversion下的所有东西,可以工作

posted on 2023-05-30 15:30  流浪的夜空  阅读(62)  评论(0)    收藏  举报