Хук post-commit Collabnet не может выполнить Perl-скрипт

Я пытаюсь настроить интеграцию Slack Subversion. Я использую Collabnet Edge под Windows. Сайт Slack предлагает скрипт Perl (здесь) для вызова. Я установил Dwimperl и написал пакетный файл для запуска сценария, передав параметры сценарию perl. Все это работает правильно, если я вызываю его вручную из командной строки, однако, когда он вызывается Subversion, что-то явно идет не так, поскольку я ничего не вижу в своих каналах Slack.

Пакетный файл имеет одну строку:

C:\Dwimperl\perl\bin\perl.exe C:\csvn\data\repositories\repo\hooks\slacknotify.pl %1 %2

Я проверил, что хук вызывается после коммита, повторяя %1 и %2 в файле, и это ведет себя так, как я ожидаю.

Я предполагаю, что Subversion вызывает пакетный файл без каких-либо установленных переменных среды или чего-то в этом роде, но я совершенно не знаком с Perl и не знаю, что именно. Я вызываю исполняемый файл perl по абсолютному пути, поэтому, даже если% PATH% пусто, я думаю, что это должно работать.

Связанный с этим вопрос: как я могу отлаживать такие проблемы? В файлах журналов Collabnet нет ничего, кроме того, что я вижу


person Stik    schedule 06.08.2015    source источник
comment
Что происходит, когда вы запускаете сценарий в командной строке, передавая в качестве аргументов реальные значения %1 и %2?   -  person stevieb    schedule 06.08.2015
comment
И пакетный файл, и сценарий perl ведут себя правильно, если я запускаю их из командной строки и передаю те же аргументы, что и svn.   -  person Stik    schedule 06.08.2015


Ответы (1)


В данном случае это была просто переменная PATH, которую нужно было установить. Конкретно

SET PATH=C:\Dwimperl\perl\bin;C:\Dwimperl\perl\site\bin;C:\Dwimperl\c\bin 

при запуске батника проблема решилась.

person Stik    schedule 07.08.2015