我是TortoiseGit的新手。想知道,如果我在.resx文件上发生冲突,如何在合并期间解决它?例如,我可以从菜单中选择“使用他们的”,尝试拉动和推动,但这是正确的方法吗?我可以以某种方式使用他们的,并通过我的项目更改重建它?差异(以及与存储库相比的混合内容)很多 - 要做很多真正的合并。谢谢你看?
答案 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
通常,我执行以下步骤:
关闭VS
命令行:git merge(将src分支合并为当前)
我在Resources.resx中看到了冲突
删除Resources.Designer.cs文件(稍后会重新生成)
使用一些解析工具打开Resources.resx(我只使用记事本++)
手动解决冲突(通常在记事本中,搜索“ <<<”,删除“ <<<”,“ -----”,“ >>>>”行,添加缺少的内容并保存。
用项目打开VS,它将抱怨缺少Resources.designer.cs文件。
双击Resource.resx,最后添加一些假行+保存(这将重新创建Resources.designer.cs)
删除我之前创建的假行并保存。