使用svn externals从svn迁移到git。 每个svn外部都可以拥有它自己的svn:externals。没有指南如何将svn与externals迁移到git这里我觉得很有用。 每个分支可以拥有它自己的分支标签主干。 迁移整个存储库的最佳方法是什么? 我正在寻找主存储库的git svn clone,添加git子模块,每个外部克隆也是如此。但由于外部是嵌套的,我不知道什么是最好的解决方案。 到目前为止使用的脚本:
https://github.com/eneroth/git-externals
https://github.com/eneroth/git-externals
答案 0 :(得分:0)
我有自己的研究,但没有从开源中找到一种多合一的解决方案。有很多单一的“单面”解决方案不能涵盖svn到git转换的许多方面,例如:
svn:externals
svn:ignore
转换为.gitignore
author@<repo-guid>
工具之后的git-svn
...等等。
这是一个很大的领域,需要您自己进行调查或研究,并且可能会花费大量时间至少从svn转换为git或进行任何转换中找出您实际需要或想要的东西。
对于我自己,我发现它与我想要的东西非常接近: https://techbase.kde.org/Projects/MoveToGit/UsingSvn2Git
规则文件示例: https://cgit.kde.org/kde-ruleset.git/tree/kde-rules-main
帐户映射示例: https://cgit.kde.org/kde-ruleset.git/tree/account-map
要从本地裸git存储库(由KDE工具生成)打包/推送到远程git存储库的脚本示例: https://phabricator.wikimedia.org/diffusion/OSOF/browse/master/svn2git/scripts
第三方项目在切片SVN存储库之前对其进行扫描:
一些通往其他第三方项目的港口:
svnrdump
类似,但即使您的存储库访问仅限于此子目录,也允许转储子目录)一些独立的有趣实现:
但是,仍然有许多未解决的方面或缺点,例如:
subtree
/ submodules
/ etc / etc将SVN存储库切片为一个GIT根存储库,并引用其他小型GIT存储库。svn:externals
自动转换为git子树(KDE项目的规则确实仅支持手动或半自动(正则表达式)转换)如果决定使用KDE转换器,则可以编写脚本来为要从svn:externals
转换为想要的每个修订范围准备规则。