【问题标题】:Force warnings about crossing branches when running Update using TortoiseHg使用 TortoiseHg 运行更新时强制警告有关交叉分支
【发布时间】:2011-05-12 18:06:51
【问题描述】:

在命令行上从 Mercurial 存储库获取最新代码时,如果存在需要合并的变更集,Mercurial 会发出警告:

hg up
abort: crosses branches (merge branches or use --check to force update)

这是我所期望的,从 Mercurial 的书中它说“Mercurial 告诉我们 hg update 命令不会进行合并;当它认为我们可能想要执行合并时,它不会更新工作目录合并,除非我们强迫它这样做。”此时我知道我需要合并。

如何使用 TortoiseHg 获得相同的行为?当我点击“更新”时,它会愉快地将我更新到最新的变更集。有没有办法警告我可能需要合并? “始终合并(如果可能)”选项似乎仅在您有未提交的更改时才适用。

【问题讨论】:

    标签: mercurial tortoisehg


    【解决方案1】:

    您在命令行上从hg update 收到错误的原因是它不知道要选择哪个版本。有 2 个不同的默认头。

    如果您要执行hg update -r <specific rev>,则命令完成且不会出错。

    当使用 TortoiseHg 时,你更新:

    1. 右键单击特定变更集
    2. 选择Update...

    这转换为hg update -r <rev>,所以没有错误。

    使用 TortoiseHg,您始终可以看到修订图。该图显示了新拉取的变更集何时创建新的头部。

    【讨论】:

      【解决方案2】:

      您看到的 Mercurial 中止正在发生,因为您的工作目录中有未完成的(即:未提交的)更改,正在尝试执行更新,而 Mercurial 已决定您可能应该执行合并。

      TortoiseHg 也应该对此发出警告,但它会以不同的方式发出警告。它将产生一个对话框,询问您是否要放弃合并搁置您未完成的更改。这是 TortoiseHg v2.X.X 中的样子,但在 v1.1.X 中应该是类似的:

      如果您没有在 TortoiseHg 中看到这一点,那么您可能没有任何未完成的更改。再试一次 - 你看到这些选项了吗?

      【讨论】:

      • 在这种情况下,我没有未提交的更改。有两个单亲变更集。我正在尝试的过程完全遵循Mercurial: The Definitive Guide 的过程。我已经链接了预期中止消息的部分。
      • @Nick 我明白你在说什么,在这种情况下,Mercurial 正在识别它认为应该是合并的模式。我将不得不调查 TortoiseHg 是否支持这个......
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多