1

这就是我所做的:

hg init
hg qnew -m "p1" p1.patch
; some changes
hg qrefresh
hg qpop
hg qnew -m "p2" p2.patch
; some changes
hg qrefresh
hg qpop

现在这两个补丁是独立的功能,彼此无关。他们需要彼此独立。

现在我做了(因为我只想要第一个功能)

hg qpush p1.patch

它说 :

applying p2.patch
applying p1.patch

它给了我我所做改变!

难道我做错了什么?

当我告诉它推送特定补丁时,它也会推送其他补丁。

4

1 回答 1

4

你忘了一件事:一组 MQ 补丁是队列(FIFO 队列)。即,如果您可以在 中看到多个补丁hg qseries,则必须记住 - qpush|qpop 将应用|取消应用补丁,而不是按随机顺序,而是按顺序:从下到上推送,以相反的顺序弹出

--moveqpush可以选择随机访问(以及更改系列中补丁的顺序作为副作用) 。在您的情况下(一次只使用一个补丁)和补丁名称

  • hg qpop -a
  • hg qpush --move p1.patch
  • hg qpop -a
  • hg qpush --move p2.patch

为了避免错误,您可以在别名部分重新定义 qpush(对于此存储库)以始终使用--move选项

于 2013-04-19T22:54:34.890 回答