掌握源代码库和各种 Releases/Customers

Master Source Code Base and Various Releases/Customers

这是一个理论问题,但也是我想实现的问题。

我有一个项目,这个项目本质上是主要的源代码,任何新的功能都会被添加到这个项目中,并且会被复制到这个项目的"children"中。因此,如果客户 A 出现,我们将复制具有最新功能的主要来源。然后,如果客户 B 想要使用该系统,我们将采用最新版本的主要源代码(可能内置了其他新功能)。所以我们每次都会建立主要来源。

就是说,我也希望能够将功能合并到其他客户版本中,以便他们可以在需要时拥有最新功能。不太确定一个好的方法或工具来帮助解决这个问题。分支会解决这个问题吗?

这是一个 ASP.Net MVC Web 系统,使用旧版本的 TFS (2010) 但使用最新版本的 Visual Studio (2019)

示例:

Main Code
------------------------------------------------------------------------
       |                  |                                |
       |Customer A        |                                |
                          |New Feature Added to Main Code  |
                                                           |Customer B

所以在这个例子中,客户 A 加入,我们获取代码库的副本。然后添加一些新功能,然后客户 B 获得最新的代码库,其中包括最新和最好的。

客户 A 发现了很棒的新功能并希望使用这些功能。这是策略开始变得模糊的地方......开发人员如何在不复制和粘贴各种文件的情况下将最新功能添加到代码库中?

通常情况下 git 对于复杂的分支策略会更好...

但是,...我认为对于您的情况,正确地对您的软件进行版本控制更有意义,例如Semantic Versioning,并为您的客户提供版本(发布)。他们可以自己决定是要购买更新版本还是购买升级版本或免费升级以修复错误……等等……

无论如何,从一个简单的模型开始,当客户demands/requirements变得更清楚时采用