这就是我所做的:
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
现在这2个补丁是独立的功能,彼此无关。他们需要彼此独立。
现在我这样做(因为我只想要第一个功能)
hg qpush p1.patch
它说:
applying p2.patch
applying p1.patch
它给了我两者我所做的更改!
我做错了吗?
当我告诉其推送特定补丁时,它也会推送其他补丁。
答案 0 :(得分:4)
你忘了一件事:MQ-patches集是队列(FIFO队列)。即如果你可以在hg qseries
中看到多个补丁,你必须记住 - qpush | qpop将以随机顺序应用| unapply补丁,但是按顺序排列:从下到上推送,以相反的顺序弹出< / p>
随机访问(以及系列中补丁的顺序更改为副作用)是qpush的--move
选项。在您的情况下(一次只使用一个补丁)和补丁名称
hg qpop -a
hg qpush --move p1.patch
hg qpop -a
hg qpush --move p2.patch
为了避免错误,您可以在别名部分重新定义qpush(对于此存储库),以便始终使用--move
选项