我们正在考虑从 SVN 迁移到 Git/Gitlab,但我想从之前完成此迁移的任何人那里得到一些建议,以了解以下两个工作流程中的哪一个最适合我们,或者是否有更好的方法来做到这一点。
我们的 SVN 存储库目前看起来像这样:
\tags
\product1_v2
\product_1
\common
\product2_v1
\trunk
\product_1
\product_2
\common
从我读过的内容来看,使用 git 的正确方法是将
product_1
、 product_2
和 common
分成单独的存储库。我读过很多文章,这些文章建议使用 submodule
或 subtree
是链接到我的公共(public)代码的好策略。与简单地将我们的所有代码放在一个存储库中相比,这两种方法听起来都需要很大的开销。一般来说,我们同时对各种产品和公共(public)库进行更改(我们的公共(public)库仍在不断发展)。
我知道 gitlab 有一个项目的概念,但我找不到关于多个项目是否可以共享一个存储库的明确答案(如果我们要在一个地方获取所有代码)。
所以我的问题是;您会推荐哪种方法来产生最少的开销和头痛?
最佳答案
我对此没有明确的答案,但我们的方式相似,所以我想分享我们已经完成的工作。
到目前为止,以下规则对我们有帮助:
因此,根据整个代码库的粗略大小,如果所有人都在同一个团队中工作并且一直需要所有文件,则不需要拆分您的存储库。有可用的食谱之后如何做到这一点。
GitBlit 具有“项目”和“存储库”的结构,它们是分层的。我试图为 GitLab 找到类似的东西,this 是我能找到的最好的。该项目似乎类似于存储库。
尝试做一个实验:
git svn
。那是可控的吗?尺寸怎么样? 所以最后,我会尝试只使用一个存储库,因为我没有看到任何拆分它的理由。只要是这种情况,就坚持下去。因此,您可以保留大部分开发过程、构建过程,然后可能会对其进行调整。
关于git - 如何将包含多个项目和公共(public)库的 SVN 存储库迁移到 Git/Gitlab?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26586227/