如何管理在不同客户系统上运行的源代码?

时间:2012-12-14 12:35:04

标签: version-control tfs architecture branch

我们有一个为我们自己的公司实施的应用程序。 到时候,该应用程序已被各公司购买。

对于每家公司,我们在源代码管理中创建了一个新的TFS分支。每一个都根据客户的具体要求进行了更改。

这就是源代码现在有很多版本的原因。 做出改变变得如此困难,因为如果来自一个共同的结构,变更需要为每个分支单独实施和测试。

管理源代码的最佳和最常用的方法是什么?

是否建议使用可在每个客户系统上运行的单一解决方案。

1 个答案:

答案 0 :(得分:3)

有多种方法可以处理客户特定的自定义,其中包括:

  • 为每个客户保留一个完全独立的分支,最终在分支之间合并代码。这是您现在部署的解决方案。
  • 以一种具有客户独立“内核”的方式构建应用程序,该内核具有可插入的保留挂钩。只有自定义项才会保存在单独的独立存储库中。
  • 将自定义项放入常用应用程序并使其可配置(“开/关”)。

采用哪种方式取决于应用程序的性质和每个客户的自定义量。如果上下文允许,由于手动合并,错误修复和测试开销,单独的分支是最不利的。

在特定的行业(电信计费系统)中,我看到了所有三个:使用专用代码分支的供应商,其他具有可插拔定制的供应商和可配置的现成产品。当然,每个供应商都有不同程度的定制灵活性,生产水平和集成方法。

作为软件供应商,最大的权衡是平衡定制灵活性与生产水平之间的差异。