Lst*_*tor 18 mercurial mercurial-queue
此答案显示了如何降级提交到修补程序,但是如何才能将mq修补程序转换为本地更改?
Lst*_*tor 24
简短的回答
确保应用补丁,然后:
hg qrefresh nothing
hg qpop --keep-changes
hg qdelete "Name of patch"
Run Code Online (Sandbox Code Playgroud)
答案很长
首先,您需要确保修补程序不会跟踪任何更改.为此,请使用
hg qrefresh nothing
Run Code Online (Sandbox Code Playgroud)
nothing只是一个不在存储库中的随机文件名.我通常用它hg qref 0来简洁.hg qrefresh接受可选的文件模式.如果给出,补丁将跟踪与模式匹配的更改 - 并且仅跟踪那些.当没有任何内容与文件模式匹配时,补丁将不会跟踪任何更改,因此仅会进行本地更改.
现在你有一个无用的补丁,你有一些局部的变化.要清理,你可以做
hg qpop --keep-changes
Run Code Online (Sandbox Code Playgroud)
即使有本地更改,也要弹出补丁.最后,要删除可以使用的死,空和未应用的补丁
hg qrm "Name of patch"
Run Code Online (Sandbox Code Playgroud)
您无法删除已应用的修补程序,这就是您需要该hg qpop --keep-changes步骤的原因.
(注意:hg qrm并且hg qremove是别名hg qdelete.)
如果使用TortoiseHg
使用TortoiseHg,将补丁导出到剪贴板(Workbench>右键单击补丁>导出>复制补丁),然后取消应用补丁,最后从目标为"工作目录"的剪贴板导入似乎有效.以下是一些演示此过程的屏幕截图:

一个可以说更简单的替代方案:
hg qfinish qtip
hg strip -k tip
Run Code Online (Sandbox Code Playgroud)
也就是说,完成补丁,然后删除生成的提交,同时保留其更改(-k选项strip).
| 归档时间: |
|
| 查看次数: |
2002 次 |
| 最近记录: |