我们有一个大型应用程序,运行在大约5个位置。这些位置都没有运行相同版本的应用程序。这使得修补和更新变得非常复杂。
尝试按照这个例子:我们将调用我正在谈论的应用程序“应用程序A”。现在我们要将应用程序B推广到其中一个位置,它必须实现应用程序A.我们必须修改A以接受B的要求。但是,我们的开发版本A(最终每个位置将具有的版本)也必须支持B.这意味着我们必须回滚到需要B的站点上运行的软件的状态,并对我们的开发版本A进行这些更改。这也意味着其他4个位置正在实现没有B支持的A版本。 / p>
因此,人们可以看到控制版本控制令人沮丧的地方。如果我们想要支持2-5站点,我们不能使用我们的开发版本的源代码,我们必须回滚到该站点上的特定版本。最好的方法是什么?请记住,我们正在使用Visual Studio 2008和Team Foundation Server。
答案 0 :(得分:4)
我建议首先将您的应用重构为使用相同版本的核心产品。
尝试在逻辑上将特定功能分解到自己的模块中,并通过适配器类型模式访问该功能。
答案 1 :(得分:1)
约翰指出了关键的第一步。在你的代码库内部稳定之前,没有任何好事可以发生。
但即使您将应用程序拆分为具有定义良好的接口的可重用组件,您仍可能必须维护许多/所有这些组件的多个版本(“分叉”)并并行开发它们的版本。这就是分支的来源。
我强烈建议您阅读新的TFS Branching Guidance论文封面。我对早期的修订非常批评,但文档团队在这里真正改进了他们的产品。 (部分归功于TFS发现更广泛采用的其他反馈......但同样重要的是最终关注远远早于微软进入市场的既定SDLC规范)