有没有更简单的方法来合并Windows窗体.Designer文件?

时间:2012-03-16 16:37:24

标签: winforms version-control mercurial merge

我们刚刚从我们的小团队从TFS切换到Mercurial。 3人工作的主要项目是C#中的Windows窗体应用程序。每次使用设计器时,即使是简单的更改,它也会进行大量的重新排列并更改为.Designer文件。如果两个人在这个文件上工作,即使进行简单的更改,合并也是绝对的噩梦。有没有简单的方法来解决这个问题?在TFS中,我们关闭了并发编辑,因此我们没有遇到此问题。

3 个答案:

答案 0 :(得分:1)

这些文件的合并总是很痛苦...这就是Mercurial的某些“锁定”扩展存在的原因,因此如果需要,您可以拥有与TFS相同的工作流程。

例如,您可以使用Martin Geisler编写的Lock extension将.Designer文件锁定到下一个push,这样做可以避免任何并发修改,从而避免合并。

答案 1 :(得分:1)

问题是每次代码引擎都可能以不同的顺序生成代码!这使得合并痛苦。

WinForm(.NET)设计器,Swing(Java)设计者依赖于代码生成引擎。

ASP.NET的designer.cs只包含支持字段,不太可能受到影响。

WPF的支持字段是在obj / * .g.cs中生成的,不需要保留在源代码管理中,因此没有合并问题。

答案 2 :(得分:0)

这就是我的工作

  1. 从master / develop分支复制/使用.Desinger.cs并在VS中打开项目
  2. 复制整个项目(所有带有.git的文件)并签出your_feature分支并在VS中打开项目
    • 现在,您应该有2个VS实例(一个在master分支上,一个在your_feature上)
  3. 将控件(ctrl + c)(在设计视图/模式下)从一个VS复制到另一个

不是完美的解决方案,但有很大帮助