Контроль версий для прозы - PullRequest
8 голосов
/ 15 октября 2011

Кажется, что кто-то уже сделал это, но я не могу найти конечный продукт, который ищу.

Использование системы контроля версий для текста является трудоемким.Вам нужны символы новой строки в конце каждого предложения и даже в середине длинных предложений.Глядя на исходный код git, кажется, что, изменив несколько подпрограмм, проверяющих '\n', можно сделать так, чтобы git (или любая другая система управления версиями) соответствовала '\n' или шаблону '\\.\s'.Это, однако, задача, которая должна выполняться тщательно, или я могу видеть, что что-то ломается довольно плохо.

Кто-нибудь знает кого-нибудь, кто уже сделал это?Или любые другие альтернативы?

Спасибо!

1 Ответ

3 голосов
/ 15 октября 2011

Любая система контроля версий должна уметь обрабатывать прозу. Вопрос в том, насколько эффективно это можно сделать.

Команда git diff использует что-то вроде diff -u для отображения различий между двумя версиями файла. Если файл состоит из текста с очень длинными строками (то есть, много символов между '\n' символами), тогда он может испытывать некоторые трудности при значительном отображении различий; может отображаться две строки по 5000 символов с одним изменением символа.

Но это не обязательно означает, что именно так git хранит файлов. Я не очень хорошо знаком с внутренним форматом хранения git, но, насколько я понимаю, он достаточно хорошо работает с двоичными файлами, которые могут содержать много мегабайт данных без символов '\n'.

Обратите внимание, что некоторые старые системы контроля версий (SCCS, RCS), вероятно, хранят различия между версиями построчно. Но даже для таких систем, в худшем случае , вы сохраняете полную копию каждой версии плюс некоторые накладные расходы. Система должна по-прежнему работать нормально.

Обратите внимание, что git diff --word-diff должен хотя бы частично решить проблему сравнения версий.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...