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

Subgit迁移14.4k提交的SVN仓库时卡在版本转Git提交99%求助

Subgit迁移SVN仓库卡在99%的排查与解决

结合你在Windows环境下迁移12年历史、14.4k次提交的SVN仓库场景,我帮你梳理下可能导致卡住的原因和对应的解决办法:

1. 优先排查网络/SVN服务器性能问题

你当前直接连接远程SVN服务器,大仓库的首次提交转换很容易受网络波动或SVN服务器响应慢影响。建议先把ProjectA的SVN仓库本地镜像一份:

svn checkout http://<URL>/collectionOfRepositories/Repository1/ProjectA/ C:\local-svn-mirror

然后用本地路径作为--svn-url重新执行迁移命令,避开网络干扰:

./subgit.bat import --svn-url file:///C:/local-svn-mirror C:\Project1-subgit --default-domain unknownUser.com --minimal-revision 14300 --authors-file authors.txt -T trunk -b branches -t tags --username myUsername

2. 调整Subgit的JVM内存配置

Subgit基于Java运行,默认内存配额不足以处理大仓库的提交转换。你可以修改subgit.bat文件里的JVM参数:
找到类似set JAVA_OPTS=-Xmx512m的行,改成更大的内存分配(比如根据你的机器内存设置为4G):

set JAVA_OPTS=-Xmx4g -Xms2g

保存后重新执行迁移命令,给Subgit足够的内存处理大提交。

3. 排除不必要的shelving目录干扰

你的SVN结构里包含shelving目录,虽然指定了trunk/branches/tags,但Subgit可能仍会扫描整个目录树。如果shelving里有大量未完成的变更或大文件,会拖慢转换速度甚至卡住。可以在命令里明确排除该目录:

./subgit.bat import --svn-url http://<URL>/collectionOfRepositories/Repository1/ProjectA/ C:\Project1-subgit --default-domain unknownUser.com --minimal-revision 14300 --authors-file authors.txt -T trunk -b branches -t tags --exclude shelving --username myUsername

4. 验证--minimal-revision参数的合理性

你指定了从r14300开始迁移,但要确认这个版本确实是ProjectA相关的起始版本。如果该版本包含跨目录的大量变更,或者SVN版本号是整个大仓库的全局编号(而非ProjectA独立的),可能会导致转换逻辑卡住。可以先去掉--minimal-revision参数,尝试从最早版本开始迁移(虽然耗时更长,但能排查是否是版本号设置的问题),或者先用SVN命令验证该版本的内容:

svn log -r14300 http://<URL>/collectionOfRepositories/Repository1/ProjectA/

5. 检查Windows文件系统权限

确保C:\Project1-subgit目录的权限足够,当前用户拥有完全读写权限。可以右键以管理员身份打开命令行窗口,再执行Subgit迁移命令,避免UAC权限限制导致的写入阻塞。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 07:37:03