Набор скриптов «svnexport.php» предназначен для обновления веб-сайта из хранилища Subversion с помощью команды «svn export [options]«.
Возможна работа как через веб-интерфейс, так и из командной строки.


Отличительная особенность

Переключение рабочих версий сайта происходит практически мгновенно за счет симлинка. Т.е. исключается ситуация, когда в процессе обновления (export или checkout) часть файлов новая, а часть — старая.


Как это работает


Внимание! Скрипт svnexport.php необходимо расположить за пределами каталога веб-сайта.
Внимание! Каталог/раздел сайта (или DocumentRoot для всего сайта), который будет обновляться через svn export должен быть обязательно симлинком!

Примерная схема каталогов сервера:

Схема работы через веб-интерфейс:

  1. Авторизация пользователя (имена, пароли задаются в файле конфигурации).
  2. Ввод параметра (необязательно) revision. Параметр revision может иметь значения: конкретный номер или дату ревизии. Подробнее см. svn help export. Если значение revision не указано, то происходит экспорт файлов самой новой ревизии.
  3. После нажатия в веб-форме кнопки «Run svn export» на диске сервера создается файл FLAG с данными для экспорта.
  4. Скрипт svnexport.php запускается в cron, например, через каждые 10-15 минут и контролирует наличие файла FLAG.
  5. Если файл FLAG существует, то оттуда читаются данные для экспорта, в основном это параметр revision.
  6. Далее очищается от файлов/подкаталогов нерабочий каталог site_dir.2. См. примерную схему каталогов сервера.
  7. Туда в site_dir.2 происходит svn export.
  8. Если все успешно, то симлинк

    заменяется на

    Примечание. При следующем запуске svnexport.php будет очищен нерабочий (теперь уже) каталог site_dir.1 куда будет сделан svn export и симлинк будет переназначен с site_dir.2 на site_dir.1.
  9. После завершения работ, вызывается пользовательский скрипт HOOKAFTER, указанный в переменной скрипта svnexport.php. Перед вызовом скрипта HOOKAFTER текущий каталог изменяется на site_dir. Туда копируется скрипт HOOKAFTER и запускается.
    В скрипте HOOKAFTER можно задать, например, установку необходимых прав на файлы и каталоги.
  10. Пользователю отсылается подробный отчет о работе.

Схема работы svnexport.php из командной строки:

  • при запуске из командной строки обязательно указывать параметр -f (force)
  • файл FLAG и его содержимое игнорируются, но по окончании работы он удаляется (если есть);
  • остальная работа ведется как описано выше.


Системные требования

PHP4 и выше, http сервер, доступ к файловой системе и crond.


Downloads

Страница проекта на SourceForge.net
Получить новейшую версию с Source Forge Subversion Server:


Прочее

Другие методы: