【发布时间】:2014-05-12 08:02:25
【问题描述】:
我想生成增量文件,即。包含 2 个文件之间的更改的文件,这些文件的大小很小。
但是,当我使用 -u 格式运行 diff 实用程序来创建统一格式的 diff 文件时,文件太大了。
我有 2 个文本文件,其内容如下所示
1.txt: "hello1234"
2.txt: "hello5678"
运行“diff -u 1.txt 2.txt”时,生成的 diff 文件为 182 字节,如下所示:
--- 1.txt 2014-05-12 03:54:58.000000000 -0400
+++ 2.txt 2014-05-12 03:55:03.000000000 -0400
@@ -1 +1 @@
-hello1234
\文件末尾没有换行符
+hello5678
\文件末尾没有换行符
与只有 9 字节大小的原始文件相比,这是巨大的。
是否有实用程序或其他方法可以生成比源文件小的差异文件(例如 svn/git 实用程序)?
目的是在文件更新时通过网络传输这些增量文件,而不是传输整个文件本身。
【问题讨论】:
-
如果没有这些数据,
patch将无法正常运行。您要求特定的差异格式,即格式。您能否将远程端指向您的 VCS 并使用其内置方法来拉取更新?压缩文件以进行传输怎么样?要么通过压缩,要么使用具有内置压缩功能(如 SFTP 或 scp)的方法? -
@nope 挑战问题 - 您提交了两个文件,每个文件包含 9 个字节,其中 4 个不同。您能否提出一种“差异”格式,明确标识原始文件中需要更改的 4 个字节以及需要在不到 9 个字节内更改的内容?如果从“h1e2l3l4o”更改为“h5e6l7l8o”怎么办?