Mercurial changegroup hook:存储库URL

时间:2012-03-14 13:59:46

标签: mercurial jenkins mercurial-hook

如何在Mercurial存储库服务器上找出当前存储库URL或至少changegroup中的名称(子路径) - 或某种等效的 - 钩子?我在IIS上运行HgWeb。

$HG_URL返回push个URL,而不是接收存储库。 $HG_SOURCE仅返回serve

上下文:我正在尝试使用changegroup为Jenkins编写/mercurial/notifyCommit?url=<url>钩子,告诉Jenkins执行SCM调查,如果我不能让它工作,我必须做每个changegroup触发器上大约有50个cURL调用(服务器上的每个存储库一次),然后记住在hgweb.config中永久保留此列表。

2 个答案:

答案 0 :(得分:2)

您的钩子将在该特定存储库的根文件夹中执行,您可以在bash中使用以下命令来获取当前文件夹名称:

${PWD##*/}

答案 1 :(得分:1)

根据Ton的回答,这是我在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