diff - 为什么这个补丁以 1 的模糊度应用,而以 0 的模糊度失败?

标签 diff patch

$ vim patch
Index: toPatch
===================================================================
--- toPatch
+++ toPatch
@@ -2,4 +2,4 @@
  */
-final public class XMLWriter {
+public class XMLWriter {

$ vim toPatch
 */
final public class XMLWriter {

  public static float CURRENT_VERSION=2.2f;
    $ patch -p0 -ui patch
patching file toPatch
Hunk #1 succeeded at 1 with fuzz 2 (offset -1 lines).

为什么模糊和线偏移?这是一个试图理解差异和补丁的演示案例,因为工具有时/通常似乎无法按预期工作。

最佳答案

Patch 会对 diff 和您的文件的一致性进行一些基本检查,如果这些检查失败,您会得到偏移或模糊。

您有偏移量 -1,因为 patch 需要文件的 diff 匹配行 2--4 的内容。但是,在您的文件中,它们是第 1--3 行。

您有 fuzz>0,因为上下文的第一行(两个空格和一个 */ )与实际文件中的行(一个空格和一个 */ )不匹配。正因为如此,补丁做了第二遍,它忽略了上下文的第一行和最后一行。

这并不能解释为什么您看到 fuzz=2 而不是 1。也许是复制粘贴文件时出错?任何其他想法,任何人?

关于diff - 为什么这个补丁以 1 的模糊度应用,而以 0 的模糊度失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6215787/

相关文章:

matlab - MATLAB 中不可能有可点击的透明线?

c++ - 完全替换功能时是否有可能获得清晰的 git diff?

tortoisesvn - TortoiseHg 和 TortoiseSvn Diff

visual-studio-2010 - 有没有办法在 VS2010 中比较两个分支的差异/文件版本?

linux - 使差异忽略符号链接(symbolic link)

dll - 修补可执行文件以避免崩溃

bash - diff 命令在 bash shell 脚本中不起作用

diff - 如何读取 .rej 文件,即

Javascript/Node.js : data patching scheme

version-control - 我可以在不接触工作目录的情况下导入补丁吗?