一个或两个存储库用于新变体?

时间:2015-03-13 23:54:50

标签: git version-control

我们有一个C代码库,处于维护模式,支持给定的电路板架构的许多构建个性。

我们正在推出该产品的第2代开发,该产品使用新的板架构。第2代将取代第1代(我们不再制作第1代电路板)。第2代将需要完整的代码块。我说50%的话。 OTOH,有一些代码将保持不变。使构建模块化以支持这两种类型对我们来说是不值得的。因此,我们基本上将项目永久分为两个产品。

我们目前在我们的存储库中使用了一个方案,其中有一个master分支用于生产版本,一个testing分支,我们积累了#34;祝福"工作,以及不同发展单位的个别分支机构。

所以我们可以:

  1. 创建一个新的git存储库,将旧代码中的代码复制到其中,然后起飞,看看未来的发展方向。
  2. 保留相同的存储库,但只需添加更多分支。
  3. 我看到的优点/缺点是:

    1. 两个存储库
      • 优点:分支机构保持简单。如果我需要比较,则强制为每个已加载的存储库
      • 缺点:不能在两者之间挑选(尽管我们很少这样做)
    2. 一个存储库,不同的分支
      • 优点:代码全部停留在同一分支,也许能够利用一些"交叉分支" git的功能
      • 缺点:必须为主要和测试分支注释两个不同的东西以消除歧义
    3. 我正在寻找建议/经验,这样可以让一个人倾向于这样或那样。

2 个答案:

答案 0 :(得分:1)

出于你提到的原因,我会选择一个存储库。很可能会有一个版本需要修复,你可以选择另一个版本。

您的分支机构不会非常复杂,只需为任何第1代分支和标签添加前缀。

  • GEN1 /主
  • GEN1 /测试
  • GEN1 / some_feature

答案 1 :(得分:1)

最后,我们拆分了存储库。我在Programmers上发布了一个类似的问题并获得some really good answers there