Назад | Перейти на главную страницу

Как преобразовать дельта-файл rdiff в обычный diff?

Мне нужно различить два очень большие файлы, слишком большие для diff обрабатывать. rdiff может создать для них дельта-файл за несколько секунд, но я бы хотел получить реальную разницу в качестве вывода. Есть ли способ конвертировать rdiff дельта на обычную разницу?

Я не думаю, что это (легко) возможно. rdiff анализирует файлы как блоки байтов, генерируя подпись для блоков байтов фиксированного размера. Затем новый файл сравнивается с этими подписями. Файл дельты содержит все разные блоки, которые не обязательно соответствуют строкам в исходном или сравниваемом файле.

Например, оригинал:

AAAAAAAAAA
BBBBBBBBBB
CCCCCCCCCC
DDDDDDDDDD

по сравнению с:

AAAAAAAAAA
BBBBOOOBBB
CCCCCCCCCC
DDDDDDDDDD

может произвести дельту:

[..]BOOOBBB
CCCCCCCCCCC
DDDDDDD[..]

Обычный diff файлы обычно содержат все измененные строки. В rdiff delta файл, вероятно, будет только частью некоторых измененных строк, а также многих неизмененных строк. Вам придется снова проанализировать файл (ы), чтобы определить фактические измененные строки.

Для получения дополнительной информации см. rdiff документация или http://librsync.sourcefrog.net/doc/rdiff.html