Как работать с сжатыми данными не сжимая и разжимая весь пак, а лишь обращаться к определенным данным, удалять и записывать?
Пишу свою систему контроля локальных версий, пришел к выводу что проще всего старые правки будет легче всего хранить в сжатом архиве, хочу с ними работать но так что бы при новой версии последнюю версию класть в папку сжатую, и в случае отката обратно удалять эти данные между современной версии и нужной нам, что бы не делать каждые 10 секунд сжатие и разжатие.
Наподобие CVS/Git? Это проект хобби?
Для нахождения разницы в бинарном контенте можно взять реализацию minibsdiff.
и в случае отката обратно удалять эти данные между современной версии и нужной нам
Насколько мне известно, Git не удаляет данные в случае отката, а лишь модифицирует состояние ветки в графе. А сами изменения становятся "осиротевшими". В случае нужды к ним можно вернуться, зная хэш фиксации.
Роман Мирр, наподобие гита,но локально, этот проект задание. но локально, эта реализация к сожалению библиотека. Удаление для простоты, потому что по тз это сгодится, я думаю это самый простой вариант, и в этом случае я успею точно по срокам.
Я думаю что могу иметь скрытую папку с множеством архивов с каждой версией изменения, на выходе будет тоже самое и большие операции по распаковке и запаковке я сведу на минимум.
Git это и есть система контроля локальных версий. Хранит он всё в сжатом виде и вытаскивает нужное не разжимая всё. Распределённость там бонусом идёт.
Тебя попросили изобрести велосипед?