我正在寻找一些解决方案,其中对生产服务器中的分支的推送被重定向到其他一些mercurial服务器。然后,我可以触发一个钩子,运行一些基本测试,并且只有在我的测试通过时才将更改发送回生产服务器。
如何将传入的更改重定向到另一个mercurial服务器? 如何将它们合并回生产服务器?
到目前为止,我已经查看过pretxnchangegroup.HOOK_NAME,pre-HOOK_NAME,来自-HOOK_NAME,但我还没有使用它们。
答案 0 :(得分:0)
重定向可能很困难,可能需要在代理级别或类似的情况下进行 - 如果你不能用钩子做到这一点......但是你可能会尝试实现类似的解决方案:
让人们从一个存储库中拔出(让我们称之为'审查') 让人们推送到另一个存储库(让我们称之为'测试')
因此,在'testing'-repository中接受来自贡献者的更改,只要它们是草稿阶段。将它设为non-publishing repository并使用钩子:
使用pretxnchangegroup挂钩快速测试传入的更改 理智(例如,他们确认编码风格和提交信息 风格,也许即将到来的变化是草案阶段)
使用更改组挂钩(因此当更改集已被接受时) 让您的CI通过以下方式对传入的变更集运行所有测试 changegroup hook(不是你想要推送的pretxnchangegroup) 成功,并且在完成所有构建测试之前不会挂起)。通知 结果的提交者。如果测试成功,那么你可能会 使用此钩子将成功测试的变更集推送到您的 '审查'存储库,否则修剪失败的变更集 您从“测试”回购中构建测试。