This answer显示了如何降级提交到补丁,但是如何才能将mq补丁仅转换为本地更改?如何仅将Mercurial队列修补程序转换为本地更改?
回答
简短的回答
确保将补丁应用,然后:
hg qrefresh nothing
hg qpop --keep-changes
hg qdelete "Name of patch"
龙答案
首先,你需要确保没有变化由补丁跟踪。要做到这一点,使用
hg qrefresh nothing
nothing
仅仅是不是在仓库一个随机文件名。为简洁起见,我通常使用hg qref 0
。 hg qrefresh
接受可选的文件模式。如果提供了该补丁,补丁将跟踪与该模式相匹配的更改 - 仅限于那些补丁。如果没有与文件模式匹配的内容,修补程序将不跟踪更改,因此只会进行本地更改。
现在你有一个无用的补丁躺在周围,你有一些本地的变化。要清理,你可以做
hg qpop --keep-changes
弹出修补程序,即使存在本地更改。最后,以去除死,空和应用补丁,你可以使用
hg qrm "Name of patch"
不能删除应用的补丁,这就是为什么你需要的hg qpop --keep-changes
一步。
(注:hg qrm
和hg qremove
是hg qdelete
别名)。
如果使用TortoiseHg
随着TortoiseHg,出口补丁复制到剪贴板(工作台>右键单击该补丁>导出>复制修补程序),然后不应用修补程序,最后从目标为“工作目录”的剪贴板导入似乎可行。下面是一些屏幕截图展示了这个过程:
'--keep-changes'不再是'hg qpop'的有效选项。根据'hg help qpop',似乎'--force'现在可以实现我们想要的功能: “-f --force忘记修补文件的所有本地修改” – sjbx
'hg qrefresh 0' failed with '该系统找不到指定的文件。' 我找到的替代方法(powershell语法):'hg qrefresh --exclude“$(hg root)”'。这告诉MQ排除存储库中的所有内容。无论出于何种原因,只是'.'不起作用,我不得不指定完整路径(因此,'hg root')。 – moswald
@CraftyThumber我仍然看到'--keep-changes',而AFAICT'--force'会失去我们试图保存的更改。 – moswald
的可以说是简单的选择:
hg qfinish qtip
hg strip -k tip
也就是说,完成补丁,然后删除生成的承诺,同时保留其更改(-k
选项strip
) 。
- 1. 将mer修补程序转换为mercual
- 2. 如何将工作分成多个具有mercurial队列的修补程序?
- 3. Mercurial队列:合并补丁
- 4. 如何将两个文本文件转换为字典(小修补程序)?
- 5. 将更多修补程序压缩到一个修补程序
- 6. 难以分裂的mercurial修补程序
- 7. matplotlib更改PatchCollection中的修补程序
- 8. 更改修补程序中的文件名或编辑修补程序,使修补程序保持有效
- 9. 如何将队列更改为List?
- 10. 使用队列的修补程序序列
- 11. 如何仅通过.Net设置或修补程序技术提供更改
- 12. 仅创建修改零件的修补程序
- 13. 如何从Mercurial创建SVN兼容的修补程序?
- 14. 针对旧版本导出mercurial修补程序
- 15. 如何修补Java程序?
- 16. 将Subversion版本库转换为Mercurial
- 17. 将1.7 Subversion版本库转换为Mercurial
- 18. 如何在使用mq合并mercurial中的分支时重新分配修补程序队列?
- 19. 修改文件中的修补程序
- 20. 如何将Rietveld代码审阅的原始补丁集转换为本地Mercurial存储库?
- 21. 如何将完整的二进制文件添加到Mercurial修补程序?
- 22. 将Git Repo转换为Mercurial
- 23. 将队列转换为列表
- 24. 将列表转换为队列
- 25. 为分支中的所有更改创建diff修补程序?
- 26. 将本地Perforce工作区克隆/转换为Mercurial Repo
- 27. 如何自动将R更新为最新的修补版本?
- 28. 发布修补程序队列的Git方法是什么?
- 29. 如果修补程序队列中的hg mq中的单个修补程序内发生太多更改,该怎么办?
- 30. 如何将此脚本转换为自定义的mercurial命令?
对不起,但是mq-patch **已经是“仅本地更改”了,AFAIK。你为什么要更多东西? –
“本地更改”是Mercurial术语,用于不在更改集中或由Mercurial修补程序跟踪的更改。可能有几个原因希望将补丁转换回本地更改。无论如何,我需要这样做几次,并没有找到堆栈溢出的答案,也没有通过谷歌搜索(我不得不RTFM),所以当我发现它的情况下分享了答案,以防其他人想要做同样的事情。 – Lstor