我们正在考虑从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
是链接到我的公共代码的好策略。与将我们的所有代码简单地放在一个存储库中相比,这两者听起来都是很多开销。
一般来说,我们同时对各种产品和公共库进行更改(我们的常用库仍在不断发展)。
我知道gitlab有一个项目概念,但我找不到一个明确的答案,即多个项目是否可以共享一个存储库(如果我们要在一个地方使用所有代码)。
所以我的问题是;您建议采用哪种方法来产生最少的开销和头痛?
答案 0 :(得分:1)
我对此没有明确的答案,但我们的方式类似,所以我想分享我们已经做过的事情。
以下规则帮助了我们:
使用子模块,您可以将Git存储库包含到其他Git存储库中。 ...子模块可用于划分独立模块中的大项目。
因此,根据整个代码库的粗略大小,如果所有人都在同一个团队中工作并且一直需要所有文件,则不需要拆分存储库。有食谱可供选择后如何做到这一点。
GitBlit具有“项目”和“存储库”的结构,它们是分层的。我试图为GitLab找到类似的东西,this是我能找到的最好的东西。那里的项目似乎与存储库类似。
尝试做一个实验:
git svn
。那可管理吗?大小怎么样?所以最后,我会尝试只使用一个存储库,因为我没有看到任何分裂它的原因。只要是这种情况,坚持下去。因此,您可以保留大部分开发过程,构建过程,并可以在以后进行调整。