我正在尝试使用 hglib 获取给定版本的补丁。我知道 hg 命令是
hg log -pr rev
但我找不到如何使用 hglib 执行此操作或等效操作。似乎没有功能可以做到这一点,除非我自己破解代码来运行上述命令。任何帮助将不胜感激?
hglibclient.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>)
您可以自己对子流程包执行相同的操作,以节省解释时间。Rawcommand 只是使用我们传递的参数构建一个命令,并再次使用 subprocess 执行。