TortoiseGit / Winforms:合并时解析Resource.resx

时间:2014-04-10 00:59:41

标签: c# winforms git git-merge tortoisegit

我是TortoiseGit的新手。想知道,如果我在.resx文件上发生冲突,如何在合并期间解决它?例如,我可以从菜单中选择“使用他们的”,尝试拉动和推动,但这是正确的方法吗?我可以以某种方式使用他们的,并通过我的项目更改重建它?差异(以及与存储库相比的混合内容)很多 - 要做很多真正的合并。谢谢你看?

2 个答案:

答案 0 :(得分:8)

这是一个尚未回答的旧问题。然而,解决resx文件中的冲突让我疯狂。主要问题似乎是resx文件可以在更新时随机更改。 Visual Studio不关心订单。结果导致很多琐碎的冲突。因为元素在两个resx文件中的不同位置而出现。

我发现答案是在合并之前按名称属性对resx文件进行排序。 This article explains how it is done并提供了一个简单的命令行工具。作者参考了如何将它集成到不同的差异/合并工具中。他的例子是Beyond Compare 3(我使用)和this article提供了有关如何进行集成的说明。

我尝试了这个,这是我第一次使用GUI更改了分支的合并,而不会在Visual Studio中手动修复任何内容或头发或数小时。

我希望这个答案是相关的,可以帮助那些帮助我的人

答案 1 :(得分:0)

我的解决方案有点笨拙,但它也处理了Resources.designer.cs文件。

VS自动从Resources.resx生成Resources.designer.cs,因此我只修复后者并重新生成Resources.designer.cs

通常,我执行以下步骤:

  1. 关闭VS

  2. 命令行:git merge(将src分支合并为当前)

  3. 我在Resources.resx中看到了冲突

  4. 删除Resources.Designer.cs文件(稍后会重新生成)

  5. 使用一些解析工具打开Resources.resx(我只使用记事本++)

  6. 手动解决冲突(通常在记事本中,搜索“ <<<”,删除“ <<<”,“ -----”,“ >>>>”行,添加缺少的内容并保存。

  7. 用项目打开VS,它将抱怨缺少Resources.designer.cs文件。

  8. 双击Resource.resx,最后添加一些假行+保存(这将重新创建Resources.designer.cs)

  9. 删除我之前创建的假行并保存。