如何在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
中永久保留此列表。
答案 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