debugrebuildstate: clarify that rev can't be specified without -r
-r has a default value of '' in the command line. The function default value of
'tip' is thus never used and any attempt at specifying revisions without -r
will fail.
It seems like then intended behavior was that 'hg debugrebuildstate' without
any parameters should set the parents to tip. That would be very confusing now
when the command primarily is used to recover from incorrect stat info.
It is apparently undocumented that '' is the same as '.' ... unless it is
passed in a place where revsets are used.
--- a/mercurial/commands.py Mon Apr 15 01:37:23 2013 +0200
+++ b/mercurial/commands.py Mon Apr 15 01:39:02 2013 +0200
@@ -2248,9 +2248,19 @@
@command('debugrebuildstate',
[('r', 'rev', '', _('revision to rebuild to'), _('REV'))],
- _('[-r REV] [REV]'))
-def debugrebuildstate(ui, repo, rev="tip"):
- """rebuild the dirstate as it would look like for the given revision"""
+ _('[-r REV]'))
+def debugrebuildstate(ui, repo, rev):
+ """rebuild the dirstate as it would look like for the given revision
+
+ If no revision is specified the first current parent will be used.
+
+ The dirstate will be set to the files of the given revision.
+ The actual working directory content or existing dirstate
+ information such as adds or removes is not considered.
+
+ One use of this command is to make the next :hg:`status` invocation
+ check the actual file content.
+ """
ctx = scmutil.revsingle(repo, rev)
wlock = repo.wlock()
try: