Mercurial:将传入的推送重定向到单独的回购

Mercurial: Redirect an incoming push to a separate repo

我正在寻找一些解决方案,将对生产服务器中分支的推送重定向到其他一些 Mercurial 服务器。然后我可以触发一个钩子,运行 一些基本测试,只有在我的测试通过时才将更改发送回生产服务器。

如何将传入的更改重定向到另一个 Mercurial 服务器? 如何将它们合并回生产服务器?

到目前为止,我已经研究了 pretxnchangegroup.HOOK_NAME、pre-HOOK_NAME、incoming-HOOK_NAME,但我还没有深入使用它们。

重定向可能很困难,可能需要在代理级别或类似级别进行 - IIRC 你不能用钩子来做......但是可能有类似的解决方案来实现你想要实现的目标:

让人从一个存储库中 PULL(我们称之为 'vetted') 让人们推送到另一个存储库(我们称之为 'testing')

因此,在 'testing'- 存储库中接受贡献者的更改,只要它们处于草稿阶段。将其设为 non-publishing repository 并使用 hooks:

  • 使用 pretxnchangegroup 挂钩快速测试传入的更改 理智(例如,他们确认编码风格并提交消息 样式,也许传入的更改是草稿阶段)

  • 使用变更组挂钩(因此当变更集已经被接受时 让你的 CI 运行 通过 changegroup 钩子(不是你想要推送到的 pretxnchangegroup 成功并且在所有构建测试完成之前不会挂起)。通知 结果的提交者。如果测试成功,那么您可能 使用此挂钩将成功测试的变更集推送到您的 'vetted' 存储库,否则 p运行e 失败的变更集 来自 'testing' 存储库的构建测试。