我想在将文件签入另一个开发人员处理过的 TFS 时禁用自动合并功能,这样我总是需要手动合并。有没有办法做到这一点?
3 回答
Visual Studio 2008 的简短回答似乎是否定的。
每当两个人更改了同一个文件时,您就必须“合并”代码。这可以采取三种形式:
- 保留您的版本(放弃他们的更改)
- 保留他们的版本(放弃您的更改)
- 合并两个更改以将它们混合在一起
您不能“关闭它”,因为没有其他安全的方法可以解决冲突。
关闭合并最接近的方法是禁止多次签出(锁定文件,以便一次只有一个开发人员可以处理它)。这可以防止发生两个并发编辑,从而避免完全合并的问题。(代价是开发人员经常被阻止并且无法在另一个开发人员拥有锁定的情况下处理文件)。这是一种糟糕且通常效率低下的工作方式——我不推荐它。
您可以最大限度地减少合并的需要:
- 经常入住。许多小的更改减少了合并冲突的风险,而一些大的更改增加了您的风险。
- 将大且经常更改的文件拆分为许多较小的文件,以最大限度地减少 2 个开发人员需要同时更改同一个文件的机会
- 在开始处理文件之前,请检查是否有其他人正在编辑它,并尝试重新组织您的“时间表”,这样您就不必在其他程序员处理该文件时开始编辑该文件(自我强加的“软锁”,只是为了减少需要合并的机会)
您还可以升级合并工具。Visual Studio 的合并太可怕了,难以使用,并且经常在代码中引入问题。它咬了我很多次,我无法相信它,所以每次都必须进行痛苦的手动合并。我现在使用 Araxis Merge,它总是完美地自动合并,让我相信我可以让它为我做合并。(我从来没有使用过另一个让我有信心的合并程序,这些年来我几乎尝试了所有其他选项)。当需要手动合并时,它提供了一个非常清晰的“阅读”合并视图,以及用于选择如何合并每一位代码的非常快速和直观的 UI,使其非常高效。我曾经在 VS 中进行复杂的合并挣扎了 3 天(多次破坏代码直到我放弃)然后我买了 Araxis Merge 并在 15 分钟内完美地重新完成了整个合并。
(我与 Araxis 没有任何关系,我无法忍受大多数可怕的合并工具)