diff --git a/mercurial/revlog.py b/mercurial/revlog.py --- a/mercurial/revlog.py +++ b/mercurial/revlog.py @@ -28,6 +28,7 @@ hex, nullid, nullrev, + wdirfilenodeids, wdirhex, wdirid, wdirrev, @@ -780,7 +781,7 @@ raise except RevlogError: # parsers.c radix tree lookup failed - if node == wdirid: + if node == wdirid or node in wdirfilenodeids: raise error.WdirUnsupported raise LookupError(node, self.indexfile, _('no node')) except KeyError: @@ -796,7 +797,7 @@ if v == node: self._nodepos = r - 1 return r - if node == wdirid: + if node == wdirid or node in wdirfilenodeids: raise error.WdirUnsupported raise LookupError(node, self.indexfile, _('no node')) @@ -1409,6 +1410,7 @@ pass def _partialmatch(self, id): + # we don't care wdirfilenodeids as they should be always full hash maybewdir = wdirhex.startswith(id) try: partial = self.index.partialmatch(id) @@ -2082,7 +2084,7 @@ if node == nullid: raise RevlogError(_("%s: attempt to add null revision") % (self.indexfile)) - if node == wdirid: + if node == wdirid or node in wdirfilenodeids: raise RevlogError(_("%s: attempt to add wdir revision") % (self.indexfile)) diff --git a/tests/test-grep.t b/tests/test-grep.t --- a/tests/test-grep.t +++ b/tests/test-grep.t @@ -245,7 +245,7 @@ $ hg stat M port2 $ hg grep -r 'wdir()' port - abort: data/port2.i@303030303030: no node! + abort: working directory revision cannot be specified [255] $ cd ..