如何为分支中的文件的所有更改创建修补程序

时间:2017-06-28 13:36:55

标签: mercurial patch

对分支中的文件进行了许多更改。一些更改是针对现在需要在主分支上实现的功能。

如何为文件的每个版本创建补丁,以便我可以选择要应用于主分支的更改?理想情况下,我希望每个补丁都包含修订的描述,以供参考。

1 个答案:

答案 0 :(得分:0)

您可以通过在log命令中引用该文件来获取一个文件的日志:

hg log FILENAME

并且您可以通过将两者作为日志的参数来获取特定版本和文件名的差异,并要求它为您提供补丁(我已将hg配置为默认使用git样式的补丁格式 - 也许这是这里也需要):

hg log --patch --rev XXX FILENAME

如果您想要修改每个修订版本的修补程序,您可以尝试使用bash之类的内容

for rev in $(hg log -T"{rev}\n" FILENAME); do hg log -p -r${rev} FILENAME > FILENAME.${rev}.patch; done

它会产生典型的补丁,包括使用的提交消息:

$ cat FILENAME.15.patch 
Änderung:        15:441bead3e0b3
Vorgänger:       7:36479da8f266
Nutzer:          planetmaker <email@example.org>
Datum:           Tue Feb 10 22:58:24 2015 +0100
Zusammenfassung: More boo

diff --git a/FILENAME b/FILENAME
--- a/FILENAME
+++ b/FILENAME
@@ -1,1 +1,2 @@
 foo is boo!
+Even moar booo!