Mercurial changegroup hook: хранилище URL
Как я могу на сервере хранилища Mercurial выяснить текущий URL хранилища или хотя бы имя (подпуть) в changegroup
- или несколько эквивалентный - крюк? Я использую HgWeb на IIS.
$HG_URL
возвращает push
URL, а не принимающий репозиторий. $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##*/}