我正在编写一个 mercurial changegroup Hook 。我还没有想出所有的事情,但由于我必须继续 promise 和插入只是为了测试我正在进行的工作,所以反复试验的过程变得更加痛苦。
有什么方法可以“伪造”一个触发器来执行我的更改组 Hook ,并使用要用于其参数的存储库的当前状态?
如果您能帮助简化此流程,我们将不胜感激。 谢谢 尼克
最佳答案
恐怕没有内置的调试功能。我在编写钩子(Hook)时所做的是设置两个本地存储库:
$ hg init repo
$ hg clone repo clone
然后在repo
中配置changegroup
钩子(Hook)。现在进入 clone
并执行
$ echo a > a
$ hg add a
$ hg commit -m 'a file'
设置克隆
。每次我想检查钩子(Hook),我就运行
$ hg push; hg -R ../repo rollback
在 clone
中。我将它保存在我的命令行历史记录中,这样我就可以按 ↑ + Return 一次又一次地执行它。 hg rollback
是关键:它有效地取消了 hg push
,这样我就可以一次又一次地重复它。
当然,您需要根据 Hook 的需要进行调整。如果 Hook 检查提交者姓名,则根据需要使用 hg commit -u someone
进行设置。如果 Hook 需要变更组中的多个变更集,则在推送之前进行两次或更多次提交——回滚将负责删除所有推送的变更集。如果钩子(Hook)是由hgweb
运行的,那么运行
$ hg serve --config 'web.push_ssl=no' --config 'web.allow_push=*'
在一个终端中为 repo
提供服务,而您在另一个终端中向其推送。
关于python - 测试新的 mercurial hooks 的简单、无痛的方法(正在进行中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9589955/