hg类似出口的输出,其中两个修订之间的所有变更集都合而为一?

时间:2019-01-07 06:20:54

标签: mercurial

因此,有一个我分叉的项目,然后在自己的分支中进行处理,然后推入自己的叉子。因此,假设原始项目的最后一个提示是修订版5000;当我开始在分支机构工作时,我的修订版是5001,现在最后,我的分支技巧是修订版5050。

现在,如果我使用

hg export 5001:5050

...我在单个补丁中得到了所有变更集,但这些签名已签名。很好,但是阅读起来很难。

如果我使用:

hg diff -r 5000:5050

...或仅hg diff -r 5000,我将所有变更集的所有变更“折叠”或“压缩”到单个变更集中-非常适合阅读以供查阅,但不包括任何签名,如:

# HG changeset patch
# User username <user@e.mail>
# Date 1545633736 -3600
#      Mon Dec 24 07:42:16 2018 +0100
...

...,并且不像hg export --git那样包含二进制文件。

因此,是否有可能获得类似hg export --git R1+1:R2的输出(包括签名和二进制文件)-但是,所有更改都像hg diff -r R1:R2中那样折叠了?

请注意,我只想生成一个补丁文件,我既不想弄乱分支的本地副本中的历史记录,也不想弄乱服务器上的fork的历史-我提到这一点是因为我见过{{ 3}},那里有很多关于历史重写的答案,诸如此类...


编辑:通过在bash中运行这两个命令可以解决此问题:

hg export | head -9 > ../mybranch.5050.patch
hg diff --git -r 5000 >> ../mybranch.5050.patch

...但是,显然hg export标头是错误的,所以我敢打赌hg import会拒绝它...因此,很高兴知道是否有办法得到这样的内容,hg import会接受...

0 个答案:

没有答案