hglib:显示修订补丁,可能吗?

hglib: show patches for a revision, possible?

我正在尝试使用 hglib 获取给定修订版的补丁。我知道 hg 命令是

hg log -pr rev

但我找不到如何使用 hglib 执行此操作或等效操作。似乎没有这样做的功能,除非我自己将代码破解为 运行 上述命令。任何帮助将不胜感激?

hglib client.log() 接口不支持我想做的事情,但我找到了一个简单的方法来 运行 任意 hg 命令。这两行打印修订版本的补丁:

out = client.rawcommand([b'log', b'-pr', b'%i'%rev])
print(str(out, 'utf-8'))

这可能是真正的答案!

import hglib
client = hglib.open(<path>)
client.export (revs = str(<revision number>), output = <output file path>)

你可以自己执行subprocess包来节省解释时间。 Rawcommand 只是用我们传递的参数构建一个命令,并再次使用 subprocess 执行。