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下的所有东西,可以工作
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)