Python 为什么hglib不允许修订和更改的状态?

Python 为什么hglib不允许修订和更改的状态?,python,mercurial,hglib,Python,Mercurial,Hglib,要获取更改列表,请提供以下命令行: hg status --change REV 但是使用hglib调用状态会出现错误: >>> client.status(rev=-1, change=True) Traceback (most recent call last): File "<stdin>", line 1, in <module> File "C:\Users\asdf\envs\stackoverflow\lib\site-packa

要获取更改列表,请提供以下命令行:

hg status --change REV
但是使用hglib调用状态会出现错误:

>>> client.status(rev=-1, change=True)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Users\asdf\envs\stackoverflow\lib\site-packages\hglib\client.py", line 1384, in status
    raise ValueError('cannot specify both rev and change')
ValueError: cannot specify both rev and change
这行得通,但我想知道为什么另一个不行。我缺少什么?

hg status--change REV
仅指定
--change
标志,而不是
--REV
标志

--change REV
选项显示变更集
REV
引入的变更。
--rev rev
选项显示变更集
rev
和工作目录之间的更改

如果您尝试
hg status--change REVx--REVy
,您将遇到与
client.status(rev=-1,change=True)
相同的错误
change
rev
选项都将变更集作为参数


请注意,
--modified
--change REV
不同,它会过滤输出以仅显示修改过的文件。

Ah!因此,我应该传递
client.status(change=[start,end])
。太好了。非常感谢。它起作用了@Peter Wood当我从命令行执行此操作时,
hg status--change start:end
hg status--change end
相同,也就是说,相对于其父级,
end
中的更改<代码>hg状态--rev start:end显示
start
end
之间的更改。或者换句话说,
hg状态--change X
相当于
hg状态--rev X-1:X
client.status(rev=[start,end])
也有效吗?我现在没有时间检查,但会给你回复的。
client.status(rev=[start, end], modified=True, added=True)