gpt4 book ai didi

git - 如何将包含大量项目和公共(public)库的SVN存储库迁移到Git/Gitlab?

转载 作者:行者123 更新时间:2023-12-02 20:45:08 29 4
gpt4 key购买 nike

我们正在考虑从 SVN 迁移到 Git/Gitlab,但我想向之前做过此迁移的人提供一些建议,了解以下两个工作流程中哪一个最适合我们,或者是否有更好的方法这样做。

我们的 SVN 存储库目前看起来像这样:

\tags
\product1_v2
\product_1
\common
\product2_v1
\trunk
\product_1
\product_2
\common

根据我的阅读,使用 git 的正确方法是将 product_1product_2common 分解为单独的存储库。我读过各种文章,建议使用 submodulesubtree 是链接到我的公共(public)代码的好策略。与简单地将所有代码放在一个存储库中相比,这两个听起来都是很大的开销。

一般来说,我们会同时对各种产品和公共(public)库进行更改(我们的公共(public)库仍在不断发展)。

我知道 gitlab 有项目的概念,但我找不到关于多个项目是否可以共享存储库的明确答案(如果我们要将所有代码放在一个地方)。

所以我的问题是;您建议使用哪种方法来产生最少的开销和麻烦?

最佳答案

对此我没有明确的答案,但我们的情况类似,所以我想分享一下我们已经做了什么。

  • 我们正在使用 GitBlit(不是 GitLab),但我认为这没有什么区别。
  • 我们有一些分布式团队的网络连接状况不佳,因此规模可能与此相关。

到目前为止,以下规则对我们有所帮助:

  • Git 通常与较小的存储库一起使用。任何可能独立于其他东西构建的东西,或者可能由不同的团队在不同的发布周期中更改的东西,都应该保留在不同的存储库中。
  • 我们到目前为止还没有使用过子模块,这里引用了一本关于公司 Git 使用的(德语)书籍:

With Sub-Modules, you are able to include Git-repositories into other Git-repositories. ... Submodules are useful to divide big projects in independent modules.

因此,根据整个代码库的粗略大小,并且如果所有人都在同一个团队中工作并且始终需要所有文件,则不需要拆分存储库。有一些食谱可以帮助您事后做到这一点。

GitBlit具有“项目”和“存储库”的结构,并且它们是分层的。我试图为 GitLab 找到类似的东西,this是我能找到的最好的。该项目看起来类似于存储库。

尝试做一个实验:

  • 在存储库的主干上执行git svn。这是可以管理的吗?尺寸怎么样?
  • 尝试该命令的不同参数。查看存储库的大小如何变化,具体取决于您要迁移的历史记录的大小。

所以最后,我会尝试只使用一个存储库,因为我没有看到任何拆分它的理由。只要是这样,就坚持下去。因此,您可以保留大部分开发过程、构建过程,并可以稍后进行调整。

关于git - 如何将包含大量项目和公共(public)库的SVN存储库迁移到Git/Gitlab?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26586227/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com