Могу ли я запустить скрипт, когда я фиксирую Subversion? - PullRequest
15 голосов
/ 26 сентября 2008

Я бы хотел запустить скрипт, который собирает документацию для моего проекта php. В основном это просто использование wget для запуска phpdoc.

Ответы [ 4 ]

14 голосов
/ 26 сентября 2008

Вот довольно обширное руководство по SVN-хукам

10 голосов
/ 26 сентября 2008

(Отвечая на мой собственный вопрос, я просто подумал, что другие тоже хотели бы знать). Да, и TortoiseSVN также поддерживает это. Слово, которое вы ищете, это «крючки».

Для TortoiseSVN откройте настройки и «Сценарии хуков». Нажмите «Добавить ...» и выберите «post_commit_hook» (для запуска после завершения фиксации). Затем добавьте сценарий, который вы используете, и рабочий путь сценария.

Я использовал командный файл и назвал wget (есть портированная версия для Windows, Google это). Чтобы заставить 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 - я просто выбрал путь наименьшего сопротивления в этом.

3 голосов
/ 26 сентября 2008

Альтернативой использованию хуков SVN будет использование механизма непрерывной интеграции. Лично я фанат Hudson . CruiseControl - классика, но есть множество других .

Зачем использовать механизм непрерывной интеграции? В целом, они более мощные, многофункциональные и портативные, чем просто использование перехватчиков SVN (что если вы захотите перейти на использование Mercurial, Git и т. Д.?).

2 голосов
/ 26 сентября 2008

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

...