问题标签 [unified-diff]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
25214 浏览

python - 如何以统一的差异格式打印两个多行字符串的比较?

你知道有什么图书馆可以帮助你做到这一点吗?

我会编写一个函数,以统一的差异格式打印两个多行字符串之间的差异。像这样的东西:

一个使用示例如下:

这应该打印出类似的内容:

0 投票
1 回答
4679 浏览

c - 为什么 GNU 补丁在这个差异上失败了?

天,

编辑:只是想我会提到这个有点长的问题现在已经解决了,这要归功于 Adam Goode 在下面的回答,如果你只是在通过时略读。

我已经获得了一个要添加到 Apache 2.2.14 的补丁,而一个统一的差异根本没有修补该文件。我正在使用 GNU 补丁 2.5.4。

我必须忽略空格,因为原始补丁制作得不好,即许多差异似乎用于制表符-> 空格转换。这些类型的差异甚至更没用,因为补丁文件已经在交付链中的某个地方被修改,例如 svn 存储库、Jira 系统、Web 界面等,因此所有选项卡都已转换为空格!

我在 Solaris 10 上使用的命令是:

输出是:

注意

线。

补丁文件包含几个统一的差异,但相关的差异是:

并且源的相关部分,在应用补丁(据说)之后,加上一些上下文,是:

所有其他补丁似乎要么已成功应用,要么被忽略。

有什么想法为什么这个特殊的差异没有被采纳?

编辑:按照亚当的建议将补丁模糊因子降低到零后,补丁已成功运行。

感谢亚当古德,如果我能给你另一个投票,我会的!如果您有兴趣,这里是 GNU diffutils 手册中有关 fuzz的相关段落。

编辑2:顺便说一句,该模糊段落的底部有一个高度相关的警告:

patch 通常会产生正确的结果,即使它必须进行多次猜测。但是,只有将补丁应用于生成补丁的文件的精确副本时,才能保证结果。

不幸的是,在这种情况下,我无法确定他们的 mod_cache.h 是否与官方的 2.2.14 mod_cache,h 相同!)-:

0 投票
3 回答
5687 浏览

diff - 无法在 Solaris 上应用统一差异补丁

例如,如果我有两个文件:

文件1:

和文件2:

并使用以下命令创建补丁:

结果是:

然后,如果我尝试使用 patch 命令在 Solaris 上应用此补丁:

它挂在:

1. 有没有办法使用具有统一差异的 Solaris原生补丁命令?

2. 如果无法应用统一格式,哪种 diff 格式被认为是最可移植的?

更新: 我在问题的第一部分找到了答案。patch如果第二个文件(在本例中为 file2)与第一个文件(file1)位于同一文件夹中,则似乎在 Solaris 上挂起。例如,以下相当常见的差异:

不适用于非常常见的补丁命令:

而以下差异(注意第二个文件已重命名):

将完美地工作。

对于我的问题的第二部分,请参阅下面接受的答案。

0 投票
3 回答
989 浏览

python - 使用 Python 渲染统一差异

我有一个包含 svn 统一差异的字符串。我的 PyGTK 应用程序需要向用户显示这个差异,我想像其他差异工具一样渲染​​它,或者至少让它着色。

你有什么建议吗,外部工具,库,自定义实现......?我在看http://kafka.fr.free.fr/diff2html/但我更喜欢使用一些库或类似的东西,所以用户不需要安装第三方应用程序。

我想稍后也将它用于 git 和 mercurial 差异。

0 投票
1 回答
203 浏览

perforce - P4Eclipse 统一 Diff

与 Perforce for Eclipse 中的 depot 相比,我如何获得关于本地更改的统一格式的 .patch 文件?

我已经习惯了 CVS 的这个特性,事实上任何其他 Diff 格式都可以。

0 投票
0 回答
264 浏览

diff - How to find exactly why patch failed?

I have a unified diff patch which patch rejects. A visual inspection of the diff file and the original code finds the code contains all text expected by the diff file in the correct location. I have tried --ignore-whitespace and -F3 for good measure but patch still fails. Does an option exist to report exactly what is causing the patch to fail?

0 投票
2 回答
11098 浏览

diff - 从 kdiff3 文件比较中,我可以生成统一差异格式的差异吗?

我在 Windows 中有一个 kdiff3 比较,我想将比较保存为统一差异格式的文本文件。

我意识到这是一个奇怪的问题。通常,人们已经掌握了文本差异,并希望在 kdiff3 中以图形方式查看它。

我在 Windows 中使用了一个……不寻常的……版本控制工具,它可以比较版本并在 kdiff3 中显示比较。然而,它在生成 Unix 友好的输出时显然是不友好的,至少对于像我这样的非 ClearCase-ninjas 来说是这样。

我真正喜欢的是以统一的差异格式获得比较的输出,这样我就可以使用类似patch或类似的工具。我不是特别喜欢 ClearCase,我很乐意尽可能地不理会它。

kdiff3 可以采用现有的比较并将其导出为统一的 diff 格式吗?

0 投票
1 回答
4088 浏览

tortoisesvn - 如何在 TortoiseSVN 的两个版本之间创建补丁文件?

我正在使用 TortoiseSVN 1.7 并希望在两个版本之间创建补丁文件。

我已经搜索过了,但是这些线程如何使用 TortoiseSVN 从修订之间的差异创建补丁? 在两个修订之间创建补丁对我来说不起作用,因为会Show changes as unified diff生成非常简单的文件(不是补丁文件)。就像是

索引:myfile.txt

==================================================== ==================

我在查看差异中读到

如果您想在一个视图中查看对特定修订中的所有文件所做的更改,您可以使用 Unified-Diff 输出(GNU 补丁格式)。这仅显示了几行上下文的差异。它比视觉文件比较更难阅读,但会一起显示所有更改。从 Revision Log 对话框中选择感兴趣的版本,然后从上下文菜单中选择 Show Differences as Unified-Diff。

我想创建一个包含有用差异信息的单个补丁文件(或根据修改后的文件的多个补丁文件)(如菜单上下文 TortoiseSVN -> 创建补丁...)

0 投票
1 回答
591 浏览

git - 如何通过 git-config 配置统一差异上下文?

如何通过 git-config 配置统一上下文,这样我就不必总是为 -U 或 --unified 选项提供值?

0 投票
1 回答
1864 浏览

command-line - tf diff /recursive /format:unified - 如何在输出中不包含文件夹名称

我想将 TFS 中两个版本之间的差异生成为统一的差异文件。我愿意

生成的输出包含我想要的文件中的所有差异,但它还包含它比较的每个文件夹的 4 附加行,即使没有差异。因此,对于给定变更集之间几乎没有实际代码更改的大型项目,会生成一个差异文件,其中包含 90+% 的行,例如:

有没有办法告诉tf不包括这些行?

谢谢