【问题标题】:How do I prevent hg update <branch> without committing in the active branch in Mercurial?如何防止 hg update <branch> 在 Mercurial 的活动分支中不提交?
【发布时间】:2012-02-22 09:55:29
【问题描述】:

假设我的本地仓库有 2 个分支,case1 和 case2。我目前正在处理 case1 并且有未提交的更改。

当我hg up case2 时,我希望禁止此导航,除非我已选择是否在 case1 中提交我的更改。

知道怎么做吗?

【问题讨论】:

  • 你可能需要在 python 中为这样的事情编写一个小的 mercurial 扩展。

标签: mercurial branch


【解决方案1】:

如果您 hg up case2 有未提交的更改,并且 case2 不是 case1 的直接祖先/后代,Mercurial 将拒绝这样做

abort: crosses branches (merge branches or use --clean to discard changes)

然后,您可以选择提交更改、通过使用建议的选项丢弃它们或更新到case1case2 的共同祖先。后一种情况是一种两跳方法,当您跳到 case2 时,您可以随身携带未提交的更改。

此外,较新版本的 Mercurial 具有更新命令的 --check 选项。这将完全符合您的要求:如果您的工作副本脏了,请中止命令。

当然,如果您查看hg help update,这一切都非常明显。

【讨论】:

  • 更新到共同祖先:hg update -r "ancestor(., case2)"。你甚至可以为此创建一个别名。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-04
相关资源
最近更新 更多