Мне нужно написать простую систему управления версиями и задаться вопросом, какой алгоритм я буду использовать для различий файлов?
Я не хочу изучать существующий исходный код из-за проблем с лицензией. Мне нужно, чтобы он был лицензирован в MPL, поэтому я не могу смотреть на какие-либо существующие системы, такие как CVS или Mercurial, поскольку они все лицензированы GPL.
Чтобы дать некоторый фон, мне просто нужны некоторые очень простые функции - двоичные файлы в папке. нет подпапок, и каждый файл ведет себя как собственный репозиторий. Нет метаданных, за исключением некоторых разрешений.
В целом действительно простой материал, моя единственная проблема заключается в том, как хранить только различия в файле от пересмотра до версии, не тратя слишком много места, но также не будучи слишком неэффективным (возможно, хранить полную версию каждый X-изменений, Ключевые кадры в видео?)