Visual studio 2008 在Visual Studio 2008中合并时强制比较文件

Visual studio 2008 在Visual Studio 2008中合并时强制比较文件,visual-studio-2008,tfs,merge,Visual Studio 2008,Tfs,Merge,当前,当我在VisualStudio2008中右键单击->合并某个特定文件时,它会尝试(通常会成功)将该文件自动合并到指定的目标 如何强制VS始终允许我在合并工具中手动比较和合并文件 我应该提到我的源代码管理是TFS。这里确实存在两个潜在问题: 作为合并计算的一部分,服务器确定自上次两个文件完全同步以来,没有针对目标文件提交任何更改。因此,简单地覆盖目标文件是安全的(无论如何通过TFS语义) 两个分支中都有历史记录,因此服务器将文件声明为冲突状态。现在由客户选择解决方案 您可以决定保持源或目标

当前,当我在VisualStudio2008中右键单击->合并某个特定文件时,它会尝试(通常会成功)将该文件自动合并到指定的目标

如何强制VS始终允许我在合并工具中手动比较和合并文件


我应该提到我的源代码管理是TFS。

这里确实存在两个潜在问题:

  • 作为合并计算的一部分,服务器确定自上次两个文件完全同步以来,没有针对目标文件提交任何更改。因此,简单地覆盖目标文件是安全的(无论如何通过TFS语义)

  • 两个分支中都有历史记录,因此服务器将文件声明为冲突状态。现在由客户选择解决方案

    • 您可以决定保持源或目标不变
    • 您可以在配置的工具中选择手动合并
    • 您可以请求自动合并(通过tf resolve-auto:acceptmerge,或外部对话框上的“全部自动合并”按钮,或内部对话框上的“为我合并更改”单选按钮)
      • 如果自动合并失败,您将看到相同的选择,但自动合并将变灰
  • 对于这种情况,你无能为力。它确实应该是安全的,除非服务器代码中存在严重的未修补缺陷,历史数据库中存在损坏,或者[很可能]您以前的解决方案选择已经在您的真实意图上严重误导了TFS。最坏的情况是,在签入任何内容之前,您总是有机会针对挂起的合并构建和运行测试


    正如你所看到的,情况2有很多皱纹。现在还不清楚你想阻止这一过程的哪一步,如果有的话。好消息是,一旦控制权转移到客户机上,您就有了广泛(并且很容易扩展)的选择范围。唯一棘手的部分是确保你了解每一个问题的后果;诚然,用户界面和文档都不完全清楚这一点。根据需要回复问题的更多详细信息。

    尝试使用带有/conservative标志的命令行。它更可能允许您在合并工具中合并更改


    /保守->在将一个分支合并到另一个分支时会导致更多冲突。

    谢谢Richard。您确定只有源和目标完全相同时才会出现情况#1吗?我相信,如果它们是不同的,并且VS决定它可以安全地执行自动合并,也会发生这种情况。这就是我担心的。这些文件是敏感的配置文件,我不能把它们弄乱。这就是为什么自动化测试不能给我所需要的安全性。所以底线是,我不能在右键单击->合并时手动强制进行比较?实际上,当源和目标相同时,不应该发生这种情况。当源已经对目标中所做的每一个更改有信用时,就会发生这种情况。示例顺序:编辑A,编辑B,合并B->A[引发冲突],解析为AcceptThers(“从源代码复制”),编辑A,再次编辑A,合并A->B。服务器不会发出冲突,因为上一次合并使它们完全同步,而B从那时起没有更改。根本没有发生自动合并。B只是被A中的内容覆盖。自动合并仅在场景#2中发生,并且只有在用户请求时才会发生。如果要保持分支之间的某些差异,则案例1是一个问题。例如,我希望我的分支始终使用指向引用程序集的不同路径。但是,我仍然需要合并项目文件中的其他更改。