Mercurial changegroup hook: хранилище URL - PullRequest
2 голосов
/ 14 марта 2012

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

$HG_URL возвращает URL-адрес push, а не получающий репозиторий.$HG_SOURCE возвращает только serve.

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

Ответы [ 2 ]

2 голосов
/ 14 марта 2012

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

${PWD##*/}
1 голос
/ 16 марта 2012

Согласно ответу Тон, это то, что я закончил делать, так как я на 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...