【问题标题】:TortoiseHG merge with localTortoiseHG 与本地合并
【发布时间】:2015-09-19 06:35:46
【问题描述】:

我是 mercurial 的新手,当我尝试与本地分支合并时,我无法理解如何解决冲突。

我有一个第三方已将更改推送到的存储库。

我提交了我的更改,然后按照 TortoiseHG 的建议由第 3 方撤回了更改。

当我尝试与本地合并时,出现以下屏幕要求我解决冲突:

我真的不确定在这里做什么。

我应该选择什么选项来将推送的第 3 方文件合并到我的本地文件并保留我提交的更改?

这可能是一个简单得可笑的问题,但我担心我会做出错误的选择并覆盖错误的文件,我以前见过(在不同的项目上)发生过这种情况,但事实证明这是一场小灾难.我希望将第 3 方文件提交到我的本地分支。

我在提取第 3 方文件之前提交的文件只进行了微小的更改,如果确实需要,可以覆盖它们。

我已经阅读了文档,但这只是让我感到困惑。

【问题讨论】:

    标签: merge mercurial tortoisehg


    【解决方案1】:

    通常:您不会丢失任何东西 - 唯一可能出错的是您的合并结果不是您想要的。因此,如果您不确定,首先要做的事情是:创建本地存储库的(本地)克隆 - 如果您有一个从未发生过的存储库,这是撤消不需要或“错误”合并的最简单方法。

    如果我理解正确,您希望(稍后)继续使用您自己的本地头部并将上游提交合并到您自己的修改中。然后主要是关于您进行合并的哪种方式的问题。因此,通常对于上述场景,您需要检查 您的 头,然后合并您从上游提取的变更集的头。

    然后合并对话框会提示您手动解决那些无法自动解决冲突的冲突。也许您想配置一个更好的合并工具,我个人的偏好是 kdiff3,因为它向您显示两种旧形式的冲突部分,并允许您手动合并编辑它,同时在合并期间很好地在屏幕上显示两个引用。请参阅KDiff3 了解如何配置它。还有其他一些您可能更喜欢的合并工具,很可能您可以轻松配置您选择的正在使用的工具之一 (ExtdiffExtension)。

    如果您只想说“其他”更改是您想要保留的更改并在发生冲突时丢弃您自己的更改,您可以这样做

    hg merge --rev OTHER --tool other
    

    一般来说,即使没有花哨的合并工具,我也只会进行正常的合并,然后在编辑器中访问有冲突的文件并搜索冲突标记(>>>>) 并用我的智慧来决定我想要在那些地方使用哪些代码作为合并代码。

    【讨论】:

    • planetmaker,所以最好选择问题图像中的“Mercurial Resolve”按钮?
    • 首先尝试 Mercurial resolve,尽管它不太可能做任何事情,因为它应该已经尝试了该部分。然后尝试Tool resolve,这应该会弹出一个合并工具来帮助您解决合并冲突。通常,当涉及的两个分支都更改了同一位置的同一文件时,就会发生合并冲突。例如,您可以修复一段文本中的拼写错误,而我本可以决定完全重写文本。您需要访问所涉及文件中的每个合并冲突,并为每个冲突决定要做什么。该工具应该可以帮助您做到这一点。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-10
    • 1970-01-01
    • 2011-03-22
    • 1970-01-01
    • 2014-08-18
    • 2011-01-05
    相关资源
    最近更新 更多