Есть ли простое объяснение того, как работает rdiff / rsyn c? - PullRequest
1 голос
/ 02 марта 2020

Представьте, что есть два очень больших файла, например папки электронной почты Thunderbird, и затем я применяю rdiff (или rsyn c) для создания файла исправления, который содержит различия между двумя версиями.

Из молекулярной биологии (выравнивание последовательностей ДНК) я знаю, что вы могли бы сдвинуть два файла, пока различия не станут самыми маленькими:

do not use horses. attack at dawn.
maybe you could use horses. attack at dawn.

... выровняется в:

         do not use horses. attack at dawn.
maybe you could use horses. attack at dawn.

.. .which дает вам содержимое файла патча / различий:

-{do not} +{maybe you could}

Но это требует больших вычислительных затрат для сдвига одного файла, размером в несколько гигабайт, байта за байтом, пока вы не найдете лучшее выравнивание. Итак, как rdiff или rsyn c эффективно обнаруживают наибольшее соглашение между двумя файлами и оттуда работают для создания достаточно небольшого файла diff?

...