问题
To get a list of changes, this answer gives the command line:
hg status --change REV
But calling status using hglib gives an error:
>>> 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
Why can't we specify both rev and change?
In answer to another recent question, I posted:
client.status(rev=[start, end], modified=True, added=True)
This works, but I was wondering why the other doesn't. What am I missing?
回答1:
hg status --change REV only specifies the --change flag, not the --rev flag.
The --change REV option displays the changes introduced with changeset REV. The --rev REV options displays the changes between the changeset REV and the working directory.
If you try hg status --change REVx --rev REVy, you'll have the same error that you see with client.status(rev=-1, change=True) Both the change and rev options take changesets as parameters
Note that --modified is different to --change REV - the filters the output to show modified files only.
来源:https://stackoverflow.com/questions/32346358/why-does-hglib-not-allow-status-for-a-revision-and-changes