Здравствуйте господа знатоки!
Существует небезызвестный я думаю алгоритм Rsync, который уже обсуждался в паре топиков...
Подробности можно посмотреть например здесь: здесь
Я хочу немного переделать его. Задача почти такая же: необходимо сформировать такой патч-файл, в котором содержаться блоки информации и что с ними делать, чтобы из старой версии файла, получалась новая версия. В данном случае два компа не нужно, нужно делать это на одном и файлы патчатся не в реальном времени а все изменения откладываются в патч-файл.
Чтобы не изобретать велосипед, хотел спросить: не делал ли кто что-то подобное?
(Пишу на С++, хотя это и не важно)
Здравствуйте, Shipilin, Вы писали:
S>необходимо сформировать такой патч-файл, в котором содержаться блоки информации и что с ними делать, чтобы из старой версии файла, получалась новая версия.
S>Чтобы не изобретать велосипед, хотел спросить: не делал ли кто что-то подобное? S>(Пишу на С++, хотя это и не важно)
Зависит от размера файла.
Например, для получения патча к DVD-образу удалось использовать только xdelta3.
bsdiff и прочие умные алгоритмы часто имеют потребности по памяти, на порядок превышающие размер данных.
Поэтому пришлось пожертвовать эффективностью — зато работает.
Спасибо за ответ.
По описанию похоже на то что нужно. Сейчас пошарился, с ходу не нашел описания алгоритма, не подскажете где посмотреть? Очень нужно! Именно сам алгоритм, а не прога.
Здравствуйте, K13, Вы писали:
K13>Зависит от размера файла. K13>Например, для получения патча к DVD-образу удалось использовать только xdelta3. K13>bsdiff и прочие умные алгоритмы часто имеют потребности по памяти, на порядок превышающие размер данных.
K13>Поэтому пришлось пожертвовать эффективностью — зато работает.
Файлы будут размера до 10-15 мб, но совершенно разные по данным, могут быть и текстовые и бинарные.