svnexport.php
README

Copyright 2008 Yuri Timofeev tim4dev@gmail.com

На английском (in English)

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

Возможна работа как через веб-интерфейс, так и из командной строки.


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

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


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

Внимание! Скрипт svnexport.php необходимо расположить за пределами каталога веб-сайта.

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

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

[some dir]
 |
 +--site_dir --(symlink)--> site_dir.1
 |
 +--site_dir.1
 |
 +--site_dir.2
 |
 |
 +--svnctrl (веб-интерфейс для svnexport)

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

  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. Если все успешно, то симлинк
    site_dir -> site_dir.1
    
    заменяется на
    site_dir -> site_dir.2
    
    Примечание. При следующем запуске 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 из командной строки:


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

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


Copyrights

Copyright 2008 Yuri Timofeev tim4dev@gmail.com

Svnexport.php - это свободная программа; вы можете повторно распространять её и/или модифицировать её в соответствии со Стандартной Общественной Лицензей GNU, опубликованной Фондом Свободного ПО; либо версии 3, либо (по вашему выбору) любой более поздней версии.

Svnexport.php распространяется в надежде, что она будет полезной, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ; даже без подразумеваемых гарантий КОММЕРЧЕСКОЙ ЦЕННОСТИ или ПРИГОДНОСТИ ДЛЯ КОНКРЕТНОЙ ЦЕЛИ. Для получения подробных сведений смотрите Стандартную Общественную Лицензию GNU.

Вы должны были получить копию Стандартной Общественной Лицензии GNU вместе с этой программой; если нет, смотрите http://www.gnu.org/licenses/.


Downloads

Страница проекта на SourceForge.net

Получить новейшую версию с Source Forge Subversion Server:

svn co http://svnexport.svn.sourceforge.net/svnroot/svnexport/trunk  <your dir>


Прочее

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

SourceForge.net Logo



tim 2008-09-27