基于当前文本压缩修订历史记录



我知道gzip和其他压缩例程使用字节级重复数据删除进行操作。我只是想知道是否有像下半部分 gzip 这样的标准写作例程。

具体来说,对于修订历史记录。当前文本将是纯文本,以前的修订将位于压缩的 blob 中。有没有办法在压缩中将当前纯文本设置为起始文本,而无需在压缩结果中实际包含当前文本。因此,压缩文本和起始文本将一起使用来解压缩。

我对Java,Perl,Node.JS感兴趣,我想是C/C++,因为有一些方法可以使用上述语言之一调用编译的文件。在这种情况下,我将在 UNIX 上构建 C 文件。

是否存在这样的例程,是否有一种重要/可用的多种语言?

使用 Zip,您可以包含 2 个单独的文件,而不是压缩其中一个

我知道Java有使用zip文件做事情的工具

有没有办法将当前纯文本设置为起始文本 压缩,而不实际将当前文本包含在 压缩结果。

有两种方法。 您可以使用 zlib 的deflateSetDictionary()为压缩器提供多达 32K 的历史记录,该压缩器将用于压缩馈送到它的内容。 32K 不包括在压缩数据中,解压缩器需要以某种方式使用 32K 才能成功解压缩。

也许更有效,特别是对于长度超过 32K 的文本,是使用 Unix diff生成修订版和当前文本之间的差异,并压缩diff的结果。 您可以对多个修订执行连续的diff,并压缩所有修订。

相关内容

  • 没有找到相关文章

最新更新