Я хотел бы запустить скрипт, который создает документацию для моего проекта php. Это просто использование wget для запуска phpdoc.Могу ли я запустить скрипт, когда я совершаю подрывную деятельность?
ответ
Вот довольно обширный учебник по SVN hooks
(Отвечая на мой собственный вопрос, я просто подумал, что другие хотели бы знать, как хорошо). Да, а также TortoiseSVN поддерживает его. Слово, которое вы ищете, это «крючки».
Для TortoiseSVN откройте настройки и «Hook Scripts». Нажмите «Добавить ...» и запустите post_commit_hook (для запуска после совершения фиксации). Затем добавьте любой скрипт, который вы используете, и рабочий путь скрипта.
Я использовал командный файл и называл wget (есть версия Windows, портированная, google it). Чтобы получить Wget для хранения журнала от PHPDoc в одном конкретном пути, вы должны указать полный путь, в противном случае журнал будет храниться в текущей папке, с которой вы совершили, так что мой пакетный файл выглядит следующим образом:
SET BUILDLOG=%~dp0%build_log.html
rem %~dp0 returns the full working path *of this script*
SET PHPDOCURL=http://localhost/PHPDocumentor/docbuilder
SET PHPDOCCONFIG=yourconfigfile
wget -O %BUILDLOG% "%PHPDOCURL%/builder.php?setting_useconfig=%PHPDOCCONFIG%&setting_output=HTML%3ASmarty%3Adefault&ConverterSetting=HTML%3ASmarty%3Adefault&setting_title=Generated+Documentation&setting_defaultpackagename=default&setting_defaultcategoryname=default&interface=web&dataform=true"
Теперь, когда вы совершаете, вызывается пакетный скрипт. Разумеется, вы также можете использовать php как инструмент командной строки, но я не рассматривал это с помощью phpdoc - я просто пошел по пути наименьшего сопротивления на этом.
Возможно, вы захотите проверить Phing для полного скриптового скрипта. Вы можете управлять транзакциями, документацией и другими мероприятиями, связанными с построением, в одном месте.
Альтернативой использованию крючков SVN будет использование механизма непрерывной интеграции. Лично я фанат Hudson. CruiseControl - это классика, но есть множество others.
Зачем использовать механизм непрерывной интеграции? В общем, они более мощные, многофункциональные и портативные, чем просто использование SVN-перехватчиков (что, если вы хотите переключиться на использование Mercurial, Git и т. Д.?).