如何读取 bzr diff

如何读取 bzr diff

原来的:

if __name__ == "__main__":
    myparams = {"server":"mpilgrim", \
                    "database":"master", \
                    "uid":"sa", \
                    "pwd":"secret" \
                    }

bzr diff 的切割:

 if __name__ == "__main__":
     myparams = {"server":"mpilgrim", \
@@ -15,4 +22,6 @@
                     "pwd":"secret" \
                     }

bzr diff 中的 '@@ -15,4 +22,6 @@' 部分是什么意思,为什么它会覆盖两行?

"database":"master", \
"uid":"sa", \

答案1

您提供的摘录来自上下文差异,它显示两个文件中相同的行和已更改的行。但是,您选择的摘录实际上并未显示任何已更改的行。(这些行前面会带有-+字符,具体取决于它们是被删除还是添加。)

@@ -15,4 +22,6 @@意味着旧文件中4以 行 开头的行15被更改(或未更改,但显示为上下文),并且与新文件中6以 行 开头的行相对应22。(发生这种情况的最简单且最常见的方式是,新文件中添加的行数比新文件中删除的行数多 7 行,因此在应用即将指定的更改之前,15旧文件中以 行 开头的内容在新文件中以 行 开头。)22

由于这是上下文差异,因此它提供了一些未指定更改的上下文行。这很有用,可以让编辑文件的人(开发人员/维护人员,当它是源代码时,如本例)通过浏览差异来了解发生了什么。但它还有另一个有用的目的,即在许多情况下,可以将针对一个文件版本创建的差异应用于同一文件的另一个版本,前提是它不会更改已经更改的完全相同的行(即,在创建差异之后但在应用差异之前更改的行)。

以下几行可能作为上下文出现在 diff 中,因为在它们之前不久发生了变化(因此它们是上下文提供的变化):

如果 __name__ == "__main__":
    myparams = {“服务器”:“mpilgrim”,\

然而,这些行可能作为上下文出现在 diff 中,因为它们之后不久就会发生变化(因此它们是上下文提供的变化):

                     “pwd”:“秘密” \
                     }

这些线大概不够接近任何差异中指定的更改将作为上下文包含在内:

                    “数据库”:“master”,\
                    “uid”:“sa”, \

这就是为什么它们看起来好像在 diff 中缺失了。它们实际上并没有缺失,因为 diff 不应该向你显示整个文件。所有这些的要点是,它们的缺失是不是因为 diff 指定要删除它们。它当然没有指定——如果是的话,它必须包括(在-他们面前放置标志以表明他们已被移除)。

(我说想必上面不是因为很有可能这不是正在发生的事情,而是因为虽然diff实用程序将创建具有指定数量的 diff上下文行,如果您愿意,您可以手动创建或修改差异,以便它在某些地方比其他地方具有更多或更少的上下文行,并且它仍然是有效的差异,只要在必要时,@@行中的数字更改为匹配。)

diff有关(diffpatchdiff3sdiff实用程序以及diff/patch格式)的更多信息,请参阅GNU diff 文档。特别是,您可能对关于统一格式

相关内容