我需要区分两个非常大的文件, 这个文件太大而不能处理。 rdiff可以在几秒钟内为它们生成一个delta文件,但是我想要一个真正的差异作为输出。 有没有一种方法将rdiff delta转换为常规diff?
我不认为这是(容易)可能的。 rdiff将文件parsing为字节块,为固定大小的字节块生成签名。 然后将新文件与这些签名进行比较。 增量文件包含所有不同的块,不一定匹配原始或比较文件中的行。
例如,一个原件:
AAAAAAAAAA BBBBBBBBBB CCCCCCCCCC DDDDDDDDDD
和….相比:
AAAAAAAAAA BBBBOOOBBB CCCCCCCCCC DDDDDDDDDD
可能会产生三angular洲:
[..]BOOOBBB CCCCCCCCCCC DDDDDDD[..]
常规的diff文件通常包含所有更改的行。 rdiff delta文件可能只是一些改变的行的一部分,还有很多不变的行。 您将不得不再次parsing文件以确定实际更改的行。
有关更多信息,请参阅rdiff文档或http://librsync.sourcefrog.net/doc/rdiff.html