You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何确定非标准SVN仓库布局以完成向Git的迁移?

非标准布局SVN转Git迁移指南

先定位主干代码

既然statmod是内容最丰富的目录,先确认它是不是实际的主干:
执行这条命令查看提交记录的集中方向:

svn log -v http://你的SVN仓库地址 | grep statmod | head -20

如果大部分提交都指向statmod,那它就对应Git的trunk。

识别分支和标签

扫一遍SVN根目录和statmod子目录,找带版本号、feature前缀的文件夹(比如statmod_v2.1、statmod_pay_feature)。然后用日志判断属性:

svn log -v http://你的SVN仓库地址/疑似分支的文件夹
  • 拷贝后有持续提交的是分支;
  • 拷贝后没再更新的是标签。

用自定义映射执行git svn clone

确定对应关系后,直接在命令行指定布局参数。比如statmod是trunk,根目录下的legacy_versions是分支,statmod_releases是标签:

git svn clone --trunk=statmod --branches=legacy_versions --tags=statmod_releases http://你的SVN仓库地址

要是分支/标签命名有规律(比如都带_branch/_tag后缀),可以用通配符批量匹配:

git svn clone --trunk=statmod --branches=*_branch --tags=*_tag http://你的SVN仓库地址

验证迁移结果

克隆完成后,检查分支、标签和提交历史:

git branch -a  # 列出所有分支
git tag -l     # 列出所有标签
git log --oneline  # 快速浏览提交历史是否完整

如果历史缺漏,调整映射参数重新克隆就行。

特殊情况处理

如果SVN里没有明确的分支/标签目录,只有多个平行的项目文件夹,要么把每个文件夹单独转成Git仓库,要么先git svn init本地仓库,手动编辑.git/config里的svn布局配置,再git svn fetch拉取历史。

内容的提问来源于stack exchange,提问作者Tallands

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 19:31:02