如何区分更改的表单文件 - (.Designer InitializeComponent)

时间:2021-10-02 15:51:14

Using Suversion and WinDiff its no problem to branch / merge class-projects and web-projects.

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

The only kind of project I can never merge are winform projects. The InitializeComponent method is always scrambled after only little changes.

我永远无法合并的唯一项目是winform项目。只需很少的更改,InitializeComponent方法总是被加扰。

Is there any good way to enable diff / merge for .Designer - files?

有没有什么好方法可以为.Designer - 文件启用diff / merge?

EDIT:

I used a 3 way diff like Bert suggested. It made thinks a lot more easy. But still Winform - files (.designer and .resx ) were not mergeable.

我使用像Bert建议的3路差异。它使思考变得更加容易。但仍然Winform - 文件(.designer和.resx)不可合并。

3 个解决方案

#1


We have a different method of ensuring that diffs are a bit more managable. We have a trigger on checkin that will modify the designer files InitializeComponent section into a consistent and ordered manner, so that diffs show the real changes.

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

we want to split InitializeComponent into 4 sections - creation, layout suspension, setup and layout resuming. Each of these sections are then separately ordered according to the names of the controls.

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

#2


Windiff was designed for comparing files. It uses a 2 way diff merge algorithm, that only allows you to see changes between two versions of a file, so you just have to guess which changes should be applied to a result file.

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

For merging you should really look into using a 3 way diff algorithm/tool.

对于合并,你应该考虑使用3路diff算法/工具。

In a 3 way diff the diff tool uses the original version of a file to extract the changes of your file (%mine) against the origin (%base) and their file (%theirs) against the origin and then applies all changes to the original version to create a single result. (And if there are any conflicts i

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

A very user friendly 3 way GUI diff tool that you can use for free is SourceGear DiffMerge (Recommended), but TortoiseMerge also implements a 3 way merge.

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

You can find a list of other common merge tools on Wikipedia.

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

#3


If you are using Resharper, reformat (including sorting members and whatever) those files before checking in.

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

#1


We have a different method of ensuring that diffs are a bit more managable. We have a trigger on checkin that will modify the designer files InitializeComponent section into a consistent and ordered manner, so that diffs show the real changes.

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

we want to split InitializeComponent into 4 sections - creation, layout suspension, setup and layout resuming. Each of these sections are then separately ordered according to the names of the controls.

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

#2


Windiff was designed for comparing files. It uses a 2 way diff merge algorithm, that only allows you to see changes between two versions of a file, so you just have to guess which changes should be applied to a result file.

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

For merging you should really look into using a 3 way diff algorithm/tool.

对于合并,你应该考虑使用3路diff算法/工具。

In a 3 way diff the diff tool uses the original version of a file to extract the changes of your file (%mine) against the origin (%base) and their file (%theirs) against the origin and then applies all changes to the original version to create a single result. (And if there are any conflicts i

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

A very user friendly 3 way GUI diff tool that you can use for free is SourceGear DiffMerge (Recommended), but TortoiseMerge also implements a 3 way merge.

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

You can find a list of other common merge tools on Wikipedia.

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

#3


If you are using Resharper, reformat (including sorting members and whatever) those files before checking in.

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