【问题标题】:How to diff changed form file - ( .Designer InitializeComponent )如何区分更改的表单文件 - (.Designer InitializeComponent)
【发布时间】:2010-10-06 10:05:59
【问题描述】:

使用 Suversion 和 WinDiff 分支/合并类项目和 Web 项目没有问题。

我永远无法合并的唯一项目是 winform 项目。 InitializeComponent 方法总是在稍作改动后被打乱。

有没有什么好方法可以为 .Designer - 文件启用差异/合并?

编辑:

我使用了 Bert 建议的 3 路差异。它让事情变得容易多了。但 Winform - 文件(.designer 和 .resx)仍然不可合并。

【问题讨论】:

标签: c# winforms svn merge branch


【解决方案1】:

我们有一种不同的方法来确保差异更易于管理。我们有一个 checkin 触发器,它会将设计器文件 InitializeComponent 部分修改为一致且有序的方式,以便差异显示真正的更改。

我们想将 InitializeComponent 拆分为 4 个部分 - 创建、布局暂停、设置和布局恢复。然后,这些部分中的每一个都根据控件的名称单独排序。

【讨论】:

  • 和@configurator:这里有同样的问题。你碰巧有触发代码要分享吗?
【解决方案2】:

如果您使用的是 Resharper,请在签入之前重新格式化(包括排序成员等)这些文件。

【讨论】:

    【解决方案3】:

    Windiff 是为比较文件而设计的。它使用 2 路差异合并算法,只允许您查看文件的两个版本之间的更改,因此您只需要猜测哪些更改应该应用于结果文件。

    对于合并,您应该真正考虑使用 3 路差异算法/工具。

    在 3 种方式 diff 中,diff 工具使用文件的原始版本来提取文件 (%mine) 对原点 (%base) 的更改以及它们的文件 (%theirs) 对原点的更改,然后应用所有更改原始版本以创建单个结果。 (如果有任何冲突我

    SourceGear DiffMerge(推荐)是一个非常用户友好的 3 路 GUI 差异工具,您可以免费使用,但 TortoiseMerge 也实现了 3 路合并。

    您可以在Wikipedia 上找到其他常用合并工具的列表。

    【讨论】:

    • 这是一个总体上不错的建议,但与设计器文件合并问题无关。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-09-25
    相关资源
    最近更新 更多