Совет 9.17: Создавайте резервные копии только реального контента

Дальнейшая экономия резервных копий различий вики со скрытыми полями может быть реализована, если мы обеспечим

что резервная копия содержит только видимые изменения текста, а не обновленные скрытые

Если мы отслеживаем версию страницы как целое число в скрытом поле, лучший способ

передайте это для регистрации, предварительно отформатировав его:

$v = "$$страница{версия}.0";

Если мы не укажем ".0", RCS увеличивает версию на десятичные знаки. Пока RCS может отслеживать

номера версий автоматически, для вики имеет больше смысла держать под контролем

это и отслеживать его на текущей странице.

Селективный

Резервное копирование

Когда страница обычно несколько раз редактируется одним и тем же пользователем только для того, чтобы получить некоторые детали

формулировки, синтаксиса или правописания, вы можете подумать, что создавать новую версию нерационально.

и делать резервную копию каждый раз. При условии, что дельта-метод RCS не потребует много места для

незначительные изменения между версиями, это требует накладных расходов и номеров версий.

Мы можем улучшить управление версиями, не увеличивая номер версии.

для последовательных обновлений одним и тем же пользователем. Это также позволяет избежать ложных конфликтов версий для


310

АДМИНИСТРИРОВАНИЕ ВИКИ И ИНСТРУМЕНТЫ

большинство репостов с резервным копированием и редактированием. Основное предположение здесь состоит в том, что «та же версия

обновление», размещенное с того же IP (в течение определенного периода времени), является «повторным редактированием» того же

пользователь. В таком случае вики не обновляет резервную копию.

Часть этого функционала бесплатна. Модуль регистрации не будет обновлять резервную копию, если

предоставленный номер версии выше. Таким образом, тестирование может быть ограничено частью

процедуру, которая увеличивает номер версии. Разумным тестом может быть сравнение сохраненного

тождество "трассировать" и изучить временной интервал с момента последнего редактирования. Первоначальные критерии для пропуска

тогда резервная копия может быть просто «предыдущее обновление менее часа назад» и «тот же пользователь».

Вот пример в коде, вставленном в подпрограмму, сохраняющую страницу:

подзаменить страницу {

мой ($ заголовок, $ страница) =

# ссылка, обратите внимание на $$page позже

мой $sysT = $ΛT; моя $date = &GetDate(0,"wdslt2");

мой $interval = abs($sysT - $$page{sysT}) ; # секунды с последнего

сохранять

мой $trace = "$ENV{REMOTE_USER) $ ENV{REMOTE_ADDR}

$ ENV{REMOTE_HOST} ";