Это звучит как проблема, которую системы контроля версий (CVS, SVN, Git, Bazaar) уже решают очень хорошо.
Все они достаточно просты в настройке на сервере, и вы можете общаться с ними через PHP.
После установки вы получите бесплатно: управление версиями, журнал, откат, обработку одновременных изменений, правильный синтаксис различий, тегирование, ветки ...
Вы не получите запрашиваемую функцию «отправлять только обновления». Я не уверен, насколько это важно для вас. Чистые тексты действительно очень дешевы для отправки, если говорить о пропускной способности.
Лично я, вероятно, пошел бы на компромисс, подобный тому, что делают вики. Разбейте весь текст на более мелкие семантически согласованные фрагменты (главы или даже абзацы), определите на стороне клиента, какие именно фрагменты были отредактированы (без перехода на уровень символов), и отправьте их.
Затем сервер может ответить с помощью diff, сгенерированного вашей системой управления версиями, что они делают очень эффективно. Если вы хотите разрешить одновременные изменения, вы можете столкнуться со случаями, когда редакторам все равно придется выполнять слияние вручную.
Еще один общий намек может состоять в том, чтобы посмотреть, что Google сделал с Wave. Я должен оставаться здесь общим, потому что сам на самом деле не изучал это подробно, но я, кажется, помню, что было несколько статей о том, как они решили проблему одновременного редактирования в реальном времени, которая, кажется, точно что бы ты хотел сделать.
Таким образом, я считаю, что проблема, которую вы планируете решать, далеко не тривиальна, есть инструменты, которые уже решают многие связанные проблемы, и я лично скомпрометировал бы и переформулировал подход в пользу гораздо меньшей рабочей нагрузки.