【问题标题】:Why does hglib not allow status for a revision and changes?为什么 hglib 不允许修订和更改的状态?
【发布时间】:2023-03-07 07:53:01
【问题描述】:

要获取更改列表,this answer 提供命令行:

hg status --change REV

但是使用 hglib 调用 status 会报错:

>>> 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

为什么我们不能同时指定rev 和change?

在回复another recent question 时,我发布了:

client.status(rev=[start, end], modified=True, added=True)

这行得通,但我想知道为什么另一个不行。我错过了什么?

【问题讨论】:

    标签: python mercurial hglib


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 啊!所以,我应该通过client.status(change=[start, end])。那太棒了。谢谢你。它有效!
    • @Peter Wood 当我从命令行执行此操作时,hg status --change start:end 与hg status --change end 相同,即end 相对于其父级的变化。 hg status --rev start:end 显示 start 和 end 之间的变化。或者换一种说法,hg status --change X 等价于hg status --rev X-1:X。 client.status( rev=[start,end]) 也可以吗?
    • 我现在没时间检查,但会尽快回复您。
    猜你喜欢
    • 2011-10-28
    • 1970-01-01
    • 1970-01-01
    • 2023-03-20
    • 2021-06-16
    • 1970-01-01
    • 2011-07-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多