mercurial - 从 python 钩子(Hook)调用一个 mercurial 命令 ("hg update")

标签 mercurial mercurial-hook

我在 Windows 2008 64 位和 IIS 上设置了 Mercurial hgweb。存储库的位置是网络共享。

我想在存储库上创建一个 Hook ,以在 changeroup 上发出“hg update”命令。我不能使用外部 Hook ,因为这会以网络共享作为工作目录启动 cmd.exe(并且 cmd.exe 不支持网络共享)。

因此,我正在寻找一个调用 mercurial 命令的 python 钩子(Hook)示例。我注意到有一个 mercurial.commands 模块,但我在网上找不到任何示例,而且我对 Python 的经验也不是很丰富。

有没有使用 Python 钩子(Hook)调用 mercurial 命令的示例 - 是否可以在 hgrc 中完成所有这些操作,或者我是否需要外部 .py 文件?

最佳答案

您需要一个外部 .py Python 扩展的文件。要像从命令行调用 Mercurial 一样使用内部 API,请使用

 from mercurial.dispatch import dispatch, request
 dispatch(request(['update']))

这是 Mercurial 1.9 之后的语法。在早期版本中,您将使用
 from mercurial.dispatch import dispatch
 dispatch(['update'])

您传递给 request 的列表或 dispatchhg 之后的参数在命令行上。

关于mercurial - 从 python 钩子(Hook)调用一个 mercurial 命令 ("hg update"),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8972409/

相关文章:

Mercurial pretxncommit 钩子(Hook) - 仅在提交时执行,忽略 rebase 和补丁

mercurial - 阻止用户在 mercurial 中推送到稳定的分支

git - 在版本控制中忽略文件夹元文件

mercurial - TortoiseHg 复制相似性特征

Mercurial hooks——在钩子(Hook)之间传递信息?

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

mercurial - 考虑从WordPress迁移到Jekyll:何去何从?

version-control - 使用 Mercurial 在线处理项目?

jenkins - 如何在脚本控制台中列出我的所有 Jenkins 凭据?