问题标签 [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.
python - 如何以统一的差异格式打印两个多行字符串的比较?
你知道有什么图书馆可以帮助你做到这一点吗?
我会编写一个函数,以统一的差异格式打印两个多行字符串之间的差异。像这样的东西:
一个使用示例如下:
这应该打印出类似的内容:
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 相同!)-:
diff - 无法在 Solaris 上应用统一差异补丁
例如,如果我有两个文件:
文件1:
和文件2:
并使用以下命令创建补丁:
结果是:
然后,如果我尝试使用 patch 命令在 Solaris 上应用此补丁:
它挂在:
1. 有没有办法使用具有统一差异的 Solaris原生补丁命令?
2. 如果无法应用统一格式,哪种 diff 格式被认为是最可移植的?
更新:
我在问题的第一部分找到了答案。patch
如果第二个文件(在本例中为 file2)与第一个文件(file1)位于同一文件夹中,则似乎在 Solaris 上挂起。例如,以下相当常见的差异:
不适用于非常常见的补丁命令:
而以下差异(注意第二个文件已重命名):
将完美地工作。
对于我的问题的第二部分,请参阅下面接受的答案。
python - 使用 Python 渲染统一差异
我有一个包含 svn 统一差异的字符串。我的 PyGTK 应用程序需要向用户显示这个差异,我想像其他差异工具一样渲染它,或者至少让它着色。
你有什么建议吗,外部工具,库,自定义实现......?我在看http://kafka.fr.free.fr/diff2html/但我更喜欢使用一些库或类似的东西,所以用户不需要安装第三方应用程序。
我想稍后也将它用于 git 和 mercurial 差异。
perforce - P4Eclipse 统一 Diff
与 Perforce for Eclipse 中的 depot 相比,我如何获得关于本地更改的统一格式的 .patch 文件?
我已经习惯了 CVS 的这个特性,事实上任何其他 Diff 格式都可以。
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?
diff - 从 kdiff3 文件比较中,我可以生成统一差异格式的差异吗?
我在 Windows 中有一个 kdiff3 比较,我想将比较保存为统一差异格式的文本文件。
我意识到这是一个奇怪的问题。通常,人们已经掌握了文本差异,并希望在 kdiff3 中以图形方式查看它。
我在 Windows 中使用了一个……不寻常的……版本控制工具,它可以比较版本并在 kdiff3 中显示比较。然而,它在生成 Unix 友好的输出时显然是不友好的,至少对于像我这样的非 ClearCase-ninjas 来说是这样。
我真正喜欢的是以统一的差异格式获得比较的输出,这样我就可以使用类似patch
或类似的工具。我不是特别喜欢 ClearCase,我很乐意尽可能地不理会它。
kdiff3 可以采用现有的比较并将其导出为统一的 diff 格式吗?
tortoisesvn - 如何在 TortoiseSVN 的两个版本之间创建补丁文件?
我正在使用 TortoiseSVN 1.7 并希望在两个版本之间创建补丁文件。
我已经搜索过了,但是这些线程如何使用 TortoiseSVN 从修订之间的差异创建补丁? 在两个修订之间创建补丁对我来说不起作用,因为会Show changes as unified diff
生成非常简单的文件(不是补丁文件)。就像是
索引:myfile.txt
==================================================== ==================
我在查看差异中读到
如果您想在一个视图中查看对特定修订中的所有文件所做的更改,您可以使用 Unified-Diff 输出(GNU 补丁格式)。这仅显示了几行上下文的差异。它比视觉文件比较更难阅读,但会一起显示所有更改。从 Revision Log 对话框中选择感兴趣的版本,然后从上下文菜单中选择 Show Differences as Unified-Diff。
我想创建一个包含有用差异信息的单个补丁文件(或根据修改后的文件的多个补丁文件)(如菜单上下文 TortoiseSVN -> 创建补丁...)
git - 如何通过 git-config 配置统一差异上下文?
如何通过 git-config 配置统一上下文,这样我就不必总是为 -U 或 --unified 选项提供值?
command-line - tf diff /recursive /format:unified - 如何在输出中不包含文件夹名称
我想将 TFS 中两个版本之间的差异生成为统一的差异文件。我愿意
生成的输出包含我想要的文件中的所有差异,但它还包含它比较的每个文件夹的 4 附加行,即使没有差异。因此,对于给定变更集之间几乎没有实际代码更改的大型项目,会生成一个差异文件,其中包含 90+% 的行,例如:
有没有办法告诉tf
不包括这些行?
谢谢