Mercurial changegroup hook: хранилище URL

Как я могу на сервере хранилища Mercurial выяснить текущий URL хранилища или хотя бы имя (подпуть) в changegroup - или несколько эквивалентный - крюк? Я использую HgWeb на IIS.

$HG_URL возвращает pushURL, а не принимающий репозиторий. $HG_SOURCE только возвращается serve,

Контекст: я пытаюсь написать changegroup крючок для Дженкинса с помощью /mercurial/notifyCommit?url=<url> это говорит Дженкинсу провести опрос SCM, и если я не могу заставить это работать, мне нужно сделать около 50 вызовов cURL (один раз для каждого репозитория на сервере) на каждом changegroup триггер, а затем не забудьте сохранить этот список в hgweb.config на всю вечность.

2 ответа

Решение

Согласно ответу Тон, это то, что я в конечном итоге делал, так как я на Windows:

changegroup.jenkins.cmd:

@for /f "delims=\" %%a in ("%CD%") do @set TOPMOST=%%~nxa
@curl.exe "http://jenkins/mercurial/notifyCommit?url=http://hgweb/%TOPMOST%" -s -S

Ваш хук будет выполнен внутри корневой папки этого конкретного репозитория, вы можете использовать следующую команду в bash, чтобы получить имя текущей папки:

${PWD##*/}
Другие вопросы по тегам