修补差异文件

修补差异文件

我已经下载了 0.85 “MTR” 的 tarball 版本 ->http://www.bitwizard.nl/mtr/ 并安装了它。

后来我看到有一个 0.86 diff 文件存在。我下载这个是为了修补它,但我很困惑如何使用 patch 命令。首先困扰我的是我需要知道原始文件名,对吧?但文件夹中没有名为 mtr.0.85 或类似内容的文件。

我怎么知道原始文件是什么?任何指示都非常感激。

编辑:差异文件具有以下内容,但我已经尝试了这些命令均无济于事。

INSTALLING diff --git a/SECURITY b/SECURITY index 6cfc40b..4ff73a9 100644 --- a/SECURITY +++ b/SECURITY @@ -7,15 +7,16 @@ minimal. Or you can make mtr setuid-root, and the following applies to you...`

运行“patch mtr mtr-0.86.diff”会呈现以下输出:HUNK #1 FAILED AT 16..直到所有 9 个 hunks 都失败。

ftp://ftp.bitwizard.nl/mtr/mtr-0.86.diff

答案1

你所拥有的是来自的输出git 差异(不是通常的diff命令)。您不会使用通常的patch程序来应用它。相反,您可以使用 git 工具“apply”。

进一步阅读:

答案2

如果git(1)给出了 diff,则必须使用git applygit使用大部分diff(1)统一格式,但添加一些特定于 git 的处理)。

如果应用补丁失败,则可能是 (a) 补丁已损坏(即,行被删除/毁坏、选项卡展开、不同的行结束约定),或者 (b) 您正尝试将补丁应用到不同的基础(如果没有重叠的修改,并且更改没有移动太多修补的地方,它应该可以工作)。

如果补丁不适用,您应该获得一个包含拒绝的文件作为副产品,然后您可以尝试手动应用缺少的更改。只要确保经常保存中间阶段,由于错误应用的更改而不得不重做整个混乱,大约 30 个大块头被拒绝,这并不有趣。

如果这在某个地方受到git控制,那么请求拉取/克隆的许可可能会更容易。

相关内容