Отмена действий

zilot

Новичок
С дифами - проще сначала разобраться как работает обычный юниксовый diff (man diff :))
Взять файл, сделать его копию, изменить копию, сравнить их diff-ом, разобраться как он работает и что умеет.
И для общего развития полезно и будет понятен механизм.

Потом все будет относительно понятно..
По сути диф - просто сочетание - информации - что изменилось (строка или промежуток с XX символа по YY символ), действие (добавилось/удалилось) если добавилось что-то новое, то собственно само содержимое.
Можно сделать это самому руками (если есть время - лучше попробовать - опять таки поможет хорошо разобраться), или воспользоваться чем-то готовым (ссылки выше кидали).
 

FractalizeR

Новичок
Автор оригинала: FireTiger
FractalizeR
То есть архвные копии хранятся не в базе, а в файлах?
Разницы нет, где хранить. В MySQL тоже есть встроенные функции сжатия информации.

И опять же хранится полная верия документа, которая заново создается при изменении?
Все архивные версии хранятся в сжатом состоянии. Актуальная версия, которая отображается пользователю, хранится в обычном состоянии. При редактировании пользователь работает с актуальной версией, после сохранения "старая актуальная" сжимается и уходит в архив, а отредактированная пользователем становится "новой актуальной".

Диффы хранить по-прежнему не рекомендую. Их применение при большой разнице в количестве архивных копий между самой первой страницей и страницей, которую нужно будет восстановить, приведет к крайне медленному выполнению операции. Если бы так делала MediaWiki, сервер бы давно уже лег.
 
Сверху