一个或两个存储库用于新变体?
One Repository or Two for new variant?
我们有一个处于维护模式的 C 代码库,它支持针对给定电路板架构的多种构建特性。
我们正在启动该产品的第 2 代开发,它使用了新的电路板架构。第 2 代将取代第 1 代(我们不再生产任何第 1 代板)。第 2 代将需要大量代码才能完全重写。我会说它的50%。 OTOH,有些代码将保持不变。使构建模块化以支持这两种类型对我们来说是不值得的。所以我们基本上要将项目永久地分成两个产品。
我们目前在我们的存储库中使用一个方案,有一个 master
分支用于生产版本,一个 testing
分支用于积累 "blessed" 工作,以及用于不同开发单元的单独分支.
所以我们可以:
- 创建一个新的 git 存储库,将旧代码复制到其中,然后起飞,看看未来会把我们带到哪里。
- 保留相同的存储库,但只需添加更多分支。
我看到的 Pros/Cons 是:
- 两个存储库
- 优点:分支保持简单。如果我需要比较
,则强制为每个加载的存储库
- 缺点:不能在两者之间挑选(虽然我们很少这样做)
- 一个存储库,不同的分支
- 优点:代码都在同一个分支中,也许能够利用 git
的一些 "cross branch" 特性
- 缺点:必须为两个不同的事物注释 master 和 testing 分支以消除它们的歧义
我正在寻找 advice/experience 可以使人偏向某一方向的东西。
出于您提到的原因,我会选择单个存储库。很可能会有一个版本的修复程序,您希望将其挑选到另一个版本中。
您的分支不会很复杂,只需像这样为任何第 1 代分支和标签添加前缀。
- gen1/master
- gen1/testing
- gen1/some_feature
最后,我们拆分了存储库。我在 Programmers
上发布了类似的问题并得到了 some really good answers there。
我们有一个处于维护模式的 C 代码库,它支持针对给定电路板架构的多种构建特性。
我们正在启动该产品的第 2 代开发,它使用了新的电路板架构。第 2 代将取代第 1 代(我们不再生产任何第 1 代板)。第 2 代将需要大量代码才能完全重写。我会说它的50%。 OTOH,有些代码将保持不变。使构建模块化以支持这两种类型对我们来说是不值得的。所以我们基本上要将项目永久地分成两个产品。
我们目前在我们的存储库中使用一个方案,有一个 master
分支用于生产版本,一个 testing
分支用于积累 "blessed" 工作,以及用于不同开发单元的单独分支.
所以我们可以:
- 创建一个新的 git 存储库,将旧代码复制到其中,然后起飞,看看未来会把我们带到哪里。
- 保留相同的存储库,但只需添加更多分支。
我看到的 Pros/Cons 是:
- 两个存储库
- 优点:分支保持简单。如果我需要比较 ,则强制为每个加载的存储库
- 缺点:不能在两者之间挑选(虽然我们很少这样做)
- 一个存储库,不同的分支
- 优点:代码都在同一个分支中,也许能够利用 git 的一些 "cross branch" 特性
- 缺点:必须为两个不同的事物注释 master 和 testing 分支以消除它们的歧义
我正在寻找 advice/experience 可以使人偏向某一方向的东西。
出于您提到的原因,我会选择单个存储库。很可能会有一个版本的修复程序,您希望将其挑选到另一个版本中。
您的分支不会很复杂,只需像这样为任何第 1 代分支和标签添加前缀。
- gen1/master
- gen1/testing
- gen1/some_feature
最后,我们拆分了存储库。我在 Programmers
上发布了类似的问题并得到了 some really good answers there。