我在手册中已经找到了,但我无法为最后一次提交生成补丁。 我试过了
hg qnew patch_name
但它只用
文件# HG changeset patch
# Parent a6a8e225d16ff5970a8926ee8d24272a1c099f9c
我也试过
hg export tip
但它没有做任何事情。我完全承诺了改变。
如何使用上次提交生成补丁文件?
答案 0 :(得分:59)
执行此操作的命令是export
:
$ hg export -o FILE -r REV
它不需要重定向,因此可以在任何平台/ shell上正常工作。
答案 1 :(得分:22)
您的hg export tip
是最好的方式,基于hg diff
和hg log
的答案只是同一版本的较小版本。键入hg export tip
时,您看到/得到的确切内容是什么? hg log -p -r tip
的输出显示了什么?
变更集tip
只是意味着“最近到达我的存储库的变更集”,这个概念并不像您想象的那样有用,因为hg pull
和hg tag
全部也创建变更集。如果你真的想要你提交的最后一件事,你需要更精确的revspec
。
答案 2 :(得分:16)
像这样:
hg diff -r tip > tip.patch
答案 3 :(得分:6)
您可以使用此命令:
hg log -r tip -p > tip.patch
这将为该修订生成补丁。
答案 4 :(得分:1)
如果您想转换最新提交到补丁文件,请使用
hg qimport -r tip
这将用应用的MQ补丁文件替换最顶层的常规提交。
答案 5 :(得分:0)
使用" mq扩展"生成补丁在mercurial中,您可以按照以下给出的步骤操作。这将使用mercurial创建一个补丁:
1)启用mq扩展:将以下行添加到hgrc文件并保存。
[extensions]
mq =
2)使用mq扩展创建补丁:要使用mq扩展创建补丁,您可以执行以下操作。
hg qnew -e -m "comment you want to enter" bug_name.patch
在上面的命令中, -e 标志用于编辑补丁, -m 标志用于在补丁中添加消息。
3)更新补丁:要更新补丁,可以在应用补丁时使用以下命令。
hg qrefresh