【问题标题】:Mercurial changegroup hook: repository URLMercurial 变更组挂钩:存储库 URL
【发布时间】:2012-03-14 13:59:46
【问题描述】:

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

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

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

【问题讨论】:

    标签: mercurial jenkins mercurial-hook


    【解决方案1】:

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

    ${PWD##*/}
    

    【讨论】:

    • 掌握了这些知识,看看我自己的答案!
    【解决方案2】:

    根据 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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-12
      • 2011-03-28
      • 1970-01-01
      • 2016-09-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多