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