Строка, Описывающая Добавления, Удаления и Изменения Между Строками?

#javascript #string #version-control #storage #string-comparison

Вопрос:

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

Например: new_version("Hello world! My name is Bob.", "Hello world! My Papa is Sam.") должно возвращать что-то вроде ?16?P?1?pa?4?Sam?1? того, где целое число представляет, сколько пробелов нужно пропустить перед внесением изменений. Проблема, с которой я сталкиваюсь, — это слова разной длины. Замена Сэма на Билла полностью изменила бы оставшуюся строку. Мне интересно, есть ли лучший способ, чем сравнивать каждого персонажа, как я сделал для своего прототипа.

Комментарии:

1. Думайте в битах, а не в битах — или используйте GitLab 🙂