我们目前在TFS 2013中运行多个分支机构:
Development
Release
Trunk
etc.
每个分支都有自动化测试版本。这些构建的目的是将每个分支的最新代码(和数据库更改)发布到我们的测试服务器以进行手动测试。我们为每个分支维护一个单独的IIS应用程序,以便可以同时测试不同的版本。
每个分支都有唯一的.csproj,.xml配置文件和web.config设置,这些设置控制每个分支部署到哪个应用程序和数据库,效果很好。
但是,当我们从一个分支合并到另一个分支时,自动合并会替换这些特定于分支的设置,从而导致我们将测试版本部署到错误的URL和数据库。
我知道在Visual Studio设置中可以完全禁用自动合并,但有没有办法可以继续使用除特定文件之外的自动合并?
欢迎任何建议
答案 0 :(得分:1)
这是任何代码促销模型的众所周知的问题。我建议您转而使用二进制促销模型。
http://nakedalm.com/building-release-pipeline-release-management-visual-studio-2013/
使用二进制升级模型,您可以使用可替换参数构建位一次,并创建或使用一个工具来协调发布,并为每个环境提供正确的变量。
http://nakedalm.com/create-release-management-pipeline-professional-developers/
我最近使用VSO构建了端到端场景。您可以在帖子中看到每个环境的值的传递。
软件行业正朝着持续交付和持续集成的方向发展。在代码促销模型中都不可能。
答案 1 :(得分:0)
您可以在合并期间禁用自动冲突解决,但在这种情况下,您必须手动解决这些冲突(忽略)
选项 - >源控制 - > Visual Studio Team Foundation Server 尝试在生成冲突时自动解决冲突
或者您可以使用tf.exe进行合并:
tf.exe merge /discard CS
使用变更集,该变更集将始终从合并中丢弃。