2

在 Mercurial 存储库服务器上,我如何才能找出当前存储库 URL 或至少名称(子路径)在一个changegroup- 或类似的 - 钩子中?我在 IIS 上运行 HgWeb。

$HG_URL返回pushers URL,而不是接收存储库的。$HG_SOURCE只返回serve

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

4

2 回答 2

2

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

${PWD##*/}
于 2012-03-14T17:58:00.650 回答
1

根据 Ton 的回答,这就是我在 Windows 上之后所做的事情:

更改组.jenkins.cmd

@for /f "delims=\" %%a in ("%CD%") do @set TOPMOST=%%~nxa
@curl.exe "http://jenkins/mercurial/notifyCommit?url=http://hgweb/%TOPMOST%" -s -S
于 2012-03-16T09:39:43.340 回答