Mediawiki (программа для Википедии) хранит полный текст для всех ревизий, см. Схему базы данных . Каждая запись в текстовой таблице в Mediawiki имеет флаги, указывающие, был ли контент, например, gziped, использование стандартного сжатия часто является самым разумным вариантом.
Я не могу сказать вам, как сделать различие алгоритмически, но какой бы алгоритм вы ни использовали, вы должны делать это из двух полных версий текста. То есть получить полную версию старого и нового объекта из базы данных, а затем выполнить diff. Это позволяет легко изменить алгоритм диффузии.
Git является отличным примером Unix-приложения, которое может сделать очень дешевое (хранение и ускорение) дельта-хранилище. Есть вики, которые могут использовать git, например ikiwiki , но я предполагаю, что вы хотите сделать это с базой данных.