根据当前文本压缩修订历史记录

时间:2012-05-17 19:26:08

标签: java perl node.js compression

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

具体来说,是修订历史。当前文本将是明文,以前的修订将是压缩blob。有没有办法在压缩中将当前普通文本设置为起始文本,而不实际包含压缩结果中的当前文本。因此,压缩文本和入门文本将一起用于解压缩。

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

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

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

  

有没有办法将当前plain作为起始文本设置为   压缩,实际上不包括当前文本   压缩结果。

有两种方法。您可以使用zlibdeflateSetDictionary()向压缩器提供高达32K的历史记录,它将用于压缩输入到它的内容。压缩数据中不包含32K,解压缩程序要求32K可以以某种方式成功解压缩。

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