【问题标题】:How to create patches for all changes to a file in a branch如何为分支中文件的所有更改创建补丁
【发布时间】:2017-06-28 13:36:54
【问题描述】:

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

如何为文件的每个修订创建一个补丁,以便我可以选择我希望将哪些更改应用于我的主分支?理想情况下,我希望每个补丁也包含修订说明以供参考。

【问题讨论】:

    标签: mercurial patch


    【解决方案1】:

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

    hg log FILENAME
    

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

    hg log --patch --rev XXX FILENAME
    

    如果您希望为每个修订版 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!
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多