因此,有一个我分叉的项目,然后在自己的分支中进行处理,然后推入自己的叉子。因此,假设原始项目的最后一个提示是修订版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
会接受...