乌龟Git / Winforms:合并时解决Resource.resx文件问题

4

我对TortoiseGit还比较陌生。想知道,如果我在一个.resx文件上遇到冲突,如何在合并时解决冲突?例如,我可以从菜单中选择“使用theirs”,尝试进行拉取和推送,但这是正确的方法吗?我能否以某种方式使用theirs并与我的项目更改重新构建它?差异(以及与存储库相比混乱的内容)很多 - 太多了,无法进行真正的合并。感谢您的关注。

2个回答

10

这是一个旧问题,一直未得到解答。不过在处理resx文件中的冲突时让我感到很烦恼。主要问题似乎在于更新时可以随便更改resx文件,而Visual Studio并不关心顺序。结果因为两个resx文件中元素位置不同而出现了很多微不足道的“冲突”。

我发现解决方法是在合并前按名称属性对resx文件进行排序。这篇文章解释了如何做到这一点并提供了一个简单的命令行工具。作者提到了如何将其集成到不同的diff/merge工具中。他的例子是Beyond Compare 3(我用的)和这篇文章提供了集成方法。

我尝试了这个方法,第一次成功地合并了带有GUI更改的分支,没有损失头发或数小时在Visual Studio中手动修复问题。

我希望这个答案对大家有帮助,就像它对我有帮助一样。


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(我通常使用notepad++)

  6. 手动解决冲突(在notepad中,通常我会搜索"<<<",删除"<<<"、"-----"、">>>>"这些行,并添加丢失的内容,然后保存)

  7. 使用该项目打开VS,它会提示缺少Resources.designer.cs文件。

  8. 双击Resource.resx,在末尾添加一行虚拟数据并保存(这样会重新创建Resources.designer.cs)

  9. 删除之前创建的虚拟数据行并保存。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接