D6217: remotefilelog: correctly reject wdir filenodes
durin42 (Augie Fackler)
phabricator at mercurial-scm.org
Mon Apr 8 15:00:02 UTC 2019
durin42 created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.
REVISION SUMMARY
This fixes `hg grep -r 'wdir()'` when remotefilelog is enabled and the working
directory contains uncommitted modifications.
REPOSITORY
rHG Mercurial
REVISION DETAIL
https://phab.mercurial-scm.org/D6217
AFFECTED FILES
hgext/remotefilelog/remotefilelog.py
tests/test-remotefilelog-blame.t
CHANGE DETAILS
diff --git a/tests/test-remotefilelog-blame.t b/tests/test-remotefilelog-blame.t
--- a/tests/test-remotefilelog-blame.t
+++ b/tests/test-remotefilelog-blame.t
@@ -35,11 +35,6 @@
$ hg grep --all-files x
x:x
-BROKEN: modifications in the wdir tries to fetch from the server.
$ echo foo >> x
$ hg grep --all-files x
- remote: abort: working directory revision cannot be specified
- 1 files fetched over 1 fetches - (1 misses, 0.00% hit ratio) over *s (glob)
- abort: error downloading file contents:
- 'connection closed early'
- [255]
++ x:x
diff --git a/hgext/remotefilelog/remotefilelog.py b/hgext/remotefilelog/remotefilelog.py
--- a/hgext/remotefilelog/remotefilelog.py
+++ b/hgext/remotefilelog/remotefilelog.py
@@ -10,7 +10,12 @@
import collections
import os
-from mercurial.node import bin, nullid
+from mercurial.node import (
+ bin,
+ nullid,
+ wdirfilenodeids,
+ wdirid,
+)
from mercurial.i18n import _
from mercurial import (
ancestor,
@@ -306,6 +311,8 @@
if len(node) != 20:
raise error.LookupError(node, self.filename,
_('invalid revision input'))
+ if node == wdirid or node in wdirfilenodeids:
+ raise error.WdirUnsupported
store = self.repo.contentstore
rawtext = store.get(self.filename, node)
To: durin42, #hg-reviewers
Cc: mercurial-devel
More information about the Mercurial-devel
mailing list