Gra*_*ler 2 git version-control tfs branching-and-merging
我们目前正在使用TFS 2010管理我们的源代码管理(MS商店,因此它是默认选择).
对于我们的独立项目,我们没有任何问题.但是,我们有一个核心产品,我们在每个客户的基础上定制.许多客户需要非常重要的自定义,其他客户只需要一些小的调整.
我们发现这是一场噩梦.我们基本上有一个包含核心产品的团队项目.如果客户端不需要更改,则只需部署核心产品即可.如果他们要求进行更改,我们会分支核心产品团队项目并开始研究.
因此,需要更改的单个文件需要我们分支整个产品.我们这样做错了吗?我有点想象我们会创建一个包含与每个客户需要的主要产品不同的分支.然后基本上客户端将获得核心+他们需要的任何更改.然后,如果我们添加到核心或更改它,那么他们只是自动获得.
我们不断开发核心,所以我们似乎把生活融入所有分支项目.我们目前有5个客户,但明年将有15-20个客户正在筹备中.然而,考虑到我们正在进行的工作,这似乎完全无法管理.我们作为程序员的生活似乎只是在合并后合并.现在这部分是因为产品很新,所以核心流失很多.但是,我们总是希望继续开发核心.问题是我们没有人曾经在这样的项目上工作,所以我们不知道这是否应该如何处理它.
有没有人有任何想法?真的很感激任何建议,因为整个核心/分支/无尽的合并让我们难过.有人向我的一位同事建议,git可以帮助我们查看任何内容.
谢谢
如果您的基础产品和分支产品具有相同文件的不同版本,则无论您使用何种源控制产品,您最终都会进行合并.一些(例如Git)使分支和合并相当容易,一些(如TFS)使它成为一个非常繁重的操作,但合并仍然必须完成.
一种使其更容易处理的策略是将代码分解为更易于管理的部分(SOLID浮现在脑海中)并打破对客户特定类的任何调整.如果客户调整有单独的文件,并且可以仅使用配置更改来注入类,则根本不需要为客户特定的更改进行分支.客户特定类的最大变化是打破您正在开发的客户.这将保留版本控制的分支(即开发/测试/发布分支),但您不会获得版本控制和客户特定的分支.
| 归档时间: |
|
| 查看次数: |
260 次 |
| 最近记录: |