如何防止特定文件自动合并

How can I prevent automerge on specific files

我们目前 运行 TFS 2013 中的多个分支:

Development
Release
Trunk
etc.

每个分支都有一个自动测试构建。这些构建的目的是将每个分支的最新代码(和数据库更改)发布到我们的测试服务器以进行手动测试。我们为每个分支维护一个单独的 IIS 应用程序,以便可以同时测试不同的版本。

每个分支都有独特的 .csproj、.xml 配置文件和 web.config 设置,这些设置控制每个分支部署到哪个应用程序和数据库,效果很好。

然而,当我们从一个分支合并到另一个分支时,自动合并会替换这些特定于分支的设置,导致我们将测试构建部署到错误的 URL 和数据库。

我知道可以在 Visual Studio 设置中完全禁用自动合并,但是除了特定文件之外,有什么方法可以让我们继续使用自动合并?

欢迎提出任何建议

您可以在合并期间禁用自动冲突解决,但在这种情况下您必须手动解决这些冲突(忽略)

选项 -> 源代码管理 -> Visual Studio Team Foundation Server 尝试在产生冲突时自动解决冲突

或者您可以使用 tf.exe 进行合并:

tf.exe merge /discard CS

使用一个总是从合并中丢弃的变更集。

这是任何代码提升模型的一个众所周知的问题。我建议您改用二进制促销模型。

http://nakedalm.com/building-release-pipeline-release-management-visual-studio-2013/

使用二进制提升模型,您可以使用可替换参数构建位并创建或使用一个工具来编排发布并为每个环境提供正确的变量。

http://nakedalm.com/create-release-management-pipeline-professional-developers/

我最近使用 VSO 构建了一个端到端场景。您可以在 post 中看到每个环境值的传递。

软件行业正朝着持续交付和持续集成的方向发展。这在代码提升模型中都是不可能的。