git-svn
将历史记录放入单个的 Git 存储库中,我已经知道如何使用 git-subtree
将该存储库拆分成更小的存储库。这个问题不是关于如何执行迁移,而是关于何时拆分和何时不拆分。我想拆分大型存储库,因为其中一些目录是独立的库,也与其他项目共享。以前,可以在不需要检出整个项目的情况下对库进行
svn checkout
操作。在所有这些过程中,我发现可能有几十个目录是有意义的,因为它们是1)独立的并且2)跨项目共享的。当你超过几个 Git 存储库时,使用一个能够更轻松地管理多个存储库的工具似乎很明智。一些例子包括 Google 的
repo
,git submodules
,git subtree
和创建自定义脚本(似乎 Chromium 这样做)。我已经探索了这些不同的方法,并知道如何使用它们。因此,问题是关于从 SVN 转换的方向。 我应该尽量坚持使用一个大的 Git 存储库,只有在绝对必要时才将其拆分成更小的部分,还是应该将其拆分成数十甚至数百个更小的存储库?哪种方法更容易使用?是否有其他的解决方案?如果选择使用多个存储库,应该使用哪个工具?什么因素会使人偏爱一种方法而不是另一种方法?
注意:源代码需要在 Windows、MacOS 和 Linux 上检出。