【问题标题】:How to generate a clean patch from Mercurial?如何从 Mercurial 生成干净的补丁?
【发布时间】:2012-05-14 09:46:37
【问题描述】:

diff 命令,即使使用 git 选项,也包含 DCS 上常用的路径前缀:

--- a/file.ext
+++ b/file.ext

因此,应用此类补丁您应该需要使用 -p1 而不是 -p0。

有没有办法从 Mercurial 生成干净的补丁?

【问题讨论】:

  • 几乎每个人都使用 -p1 补丁。您认为拥有 -p0 补丁的优势是什么?

标签: mercurial diff patch


【解决方案1】:

Mercurial 不会发出 -p0 补丁。正如@Ringdig 指出的那样,它们很少是你想要的。

【讨论】:

    【解决方案2】:

    您可以修改此答案中给出的查看脚本:transforming patch strip level 以删除第一个目录而不是添加它。

    这样的东西应该可以工作(未经测试):

    sed \
        -e 's!^--- a/!--- !' \
        -e 's!^+++ b/!+++ !' \
        < p1.patch \
        > p0.patch
    

    假设您的“p1 补丁”在名为 p1.patch 的文件中,则输出将在 p0.patch 中

    【讨论】:

      猜你喜欢
      • 2011-11-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-05
      • 1970-01-01
      • 2021-02-14
      • 1970-01-01
      相关资源
      最近更新 更多