gpt4 book ai didi

git - 任何源代码控制系统都可以处理基于每个客户端的分支代码吗?

转载 作者:太空狗 更新时间:2023-10-29 14:26:13 25 4
gpt4 key购买 nike

我们目前使用 TFS 2010 来管理我们的源代码控制(MS 商店,所以它是默认选择)。

我们的独立项目没有问题。但是,我们有一个核心产品,是根据每个客户定制的。许多客户需要相当大的定制,其他客户只需要一些小的调整。

我们发现这是一场噩梦。我们基本上有一个包含核心产品的团队项目。如果客户不需要更改,他们只需部署核心产品即可。如果他们要求更改,我们会分支核心产品团队项目并开始处理。

因此,需要更改的单个文件需要我们对整个产品进行分支。我们做错了吗?我有点想象我们会创建一个分支,其中包含每个客户需要的主要产品的差异。然后基本上客户将获得核心+他们需要的任何更改。然后,如果我们添加到核心或更改它,他们就会自动获得。

我们一直在不断地开发核心,所以我们似乎花了一生的时间将更改 merge 到所有分支项目中。我们目前有 5 个客户,但明年会有 15-20 个客户。然而,考虑到我们在 5 上所做的工作,这似乎完全无法管理。作为程序员,我们的生活似乎只是在 merge 后 merge 。现在这部分是因为产品很新,所以核心有很多流失。但是,我们将始终希望继续开发核心。问题是我们都没有参与过这样的项目,所以我们不知道这是否是我们应该处理的方式。

有人有什么想法吗?非常感谢任何建议,因为整个核心/分支/无尽的 merge 让我们很伤心。有人向我的一位同事建议,git 可以帮助我们查看任何内容。

谢谢

最佳答案

如果您的基础产品和您的分支产品具有相同文件的不同版本,无论您使用何种源代码控制产品,您最终都会 merge 。一些(例如 Git)使分支和 merge 变得相当容易,一些(如 TFS)使它成为一个相当繁重的操作,但 merge 仍然必须完成。

一种使其更容易处理的策略是将代码分解为更易于管理的部分 (SOLID comes to mind),并将任何改编分解为客户特定的类。如果有单独的文件用于客户调整,并且可以仅使用配置更改来注入(inject)类,那么根本没有理由为客户特定的更改进行分支。对特定于客户的类所做的最糟糕的更改可能会破坏您正在为之开发的客户。这将为版本控制保留分支(即开发/测试/发布分支​​),但您不会获得版本控制客户特定的分支。

关于git - 任何源代码控制系统都可以处理基于每个客户端的分支代码吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12130269/

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