python - 测试新的 mercurial hooks 的简单、无痛的方法(正在进行中)

标签 python mercurial mercurial-hook

我正在编写一个 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/

相关文章:

mercurial - 获取 Mercurial 下一次提交哈希

mercurial-hook - 如何在 mercurial 提交之前执行命令行应用程序(bat)?

bash - 如何在 Mercurial 的 "push creates new remote head"周围编写一个钩子(Hook)?

python - 如何从 Mercurial Input 或 Changeset Hook 访问提交消息

python - 如何将没有换行符的大(3-4GB)文件读入 numpy 数组?

python - tweepy:找到转推的原作者

python - 如何组合和重叠两个张量?

python - Pycharm 交互式控制台不起作用

mercurial - 在 Hudson 中构建一个特定的修订版?

mercurial - 如何使用 TortoiseHG 进行分支