我在 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
的列表或 dispatch
是 hg
之后的参数在命令行上。
关于mercurial - 从 python 钩子(Hook)调用一个 mercurial 命令 ("hg update"),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8972409/