使用 Suversion 和 WinDiff 分支/合并类项目和 Web 项目没有问题。
我永远无法合并的唯一一种项目是 winform 项目。InitializeComponent 方法总是在稍作改动后被打乱。
有什么好方法可以为 .Designer 文件启用差异/合并吗?
编辑:
我使用了 Bert 建议的 3 路差异。它让事情变得容易多了。但是 Winform - 文件(.designer 和 .resx)仍然不可合并。
我们有一种不同的方法来确保差异更易于管理。我们有一个 checkin 触发器,它将把设计器文件 InitializeComponent 部分修改为一致且有序的方式,以便差异显示真正的变化。
我们想将 InitializeComponent 拆分为 4 个部分 - 创建、布局暂停、设置和布局恢复。然后根据控件的名称对这些部分中的每个部分进行单独排序。
如果您使用的是 Resharper,请在签入之前重新格式化(包括排序成员等)这些文件。
Windiff 是为比较文件而设计的。它使用 2 路差异合并算法,仅允许您查看文件的两个版本之间的更改,因此您只需猜测哪些更改应应用于结果文件。
对于合并,您应该真正考虑使用 3 路差异算法/工具。
在 3 种方式 diff 中,diff 工具使用文件的原始版本来提取文件 (%mine) 对原点 (%base) 的更改以及它们的文件 (%theirs) 对原点的更改,然后将所有更改应用于原始版本以创建单个结果。(如果有任何冲突我
SourceGear DiffMerge (推荐)是一个非常用户友好的 3 路 GUI 差异工具,您可以免费使用,但 TortoiseMerge 也实现了 3 路合并。
您可以在Wikipedia上找到其他常用合并工具的列表。