8

我们最近安装了 Visual Studio 2012,我正在与我们团队的另一位成员一起开发一个全新的项目,使用 Team Foundation Server 2010 进行源代码控制。我最近注意到我的一些文件在我签入时随机损坏。然后在输出窗口中注意到有关冲突的通知,这些冲突已自动解决!?

事实证明这是 Visual Studio 2012 中的默认设置!

我在 MSDN 上找到了一篇文章,详细介绍了如何关闭此设置(http://msdn.microsoft.com/en-gb/library/vstudio/ms181432.aspx#automatic_options),但我很好奇是否有人知道为什么这可能毁灭性的设置会默认开启吗?

4

1 回答 1

7

因为它是大多数其他工具中的默认设置,而使用 Team Foundation Server 的人发现他们必须明确告诉该工具进行自动合并而感到沮丧。更重要的是,人们甚至没有发现他们必须明确告诉工具自动合并,并抱怨合并分支产生的大量冲突,因为在许多工具中,用户甚至没有被告知“合并冲突”,直到它无法自动合并。因此,Team Foundation Server 似乎未能正确执行三向合并。

显然,这里正确的默认值是判断调用。我没有成功,但我支持它。

不过,我担心默认值的这种更改会暴露合并工作流程中的一些问题。Automerge绝对可以产生人类不会产生的结果,这是毫无疑问的。但这是一个完善的标准,通常被认为是安全、有用且普遍正确的。

如果这在某种程度上是“危险的”,那么您的流程应该在您签入之前很久就捕捉到。希望您在签入之前很久就已经在本地构建并运行完整的测试通过,如果您未能成功,您的持续集成构建也会捕捉到这些错误这样做。

如果 automerge 产生不正确的输出,您始终可以手动合并文件。而且,当然,您也可以将自动合并选项设置为“关闭”。

于 2013-03-15T19:09:38.050 回答