D5125: WIP: rename requirements and wireproto methods
durin42 (Augie Fackler)
phabricator at mercurial-scm.org
Tue Oct 16 19:19:15 UTC 2018
durin42 created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.
REVISION SUMMARY
This is a mess, in part because there should be more constants
throughout.
REPOSITORY
rHG Mercurial
REVISION DETAIL
https://phab.mercurial-scm.org/D5125
AFFECTED FILES
hgext/remotefilelog/__init__.py
hgext/remotefilelog/fileserverclient.py
hgext/remotefilelog/remotefilelogserver.py
hgext/remotefilelog/shallowbundle.py
hgext/remotefilelog/shallowrepo.py
tests/test-remotefilelog-http.t
CHANGE DETAILS
diff --git a/tests/test-remotefilelog-http.t b/tests/test-remotefilelog-http.t
--- a/tests/test-remotefilelog-http.t
+++ b/tests/test-remotefilelog-http.t
@@ -16,16 +16,16 @@
Build a query string for later use:
$ GET=`hg debugdata -m 0 | $PYTHON -c \
- > 'import sys ; print [("?cmd=getfile&file=%s&node=%s" % tuple(s.split("\0"))) for s in sys.stdin.read().splitlines()][0]'`
+ > 'import sys ; print [("?cmd=x_rfl_getfile&file=%s&node=%s" % tuple(s.split("\0"))) for s in sys.stdin.read().splitlines()][0]'`
$ cd ..
$ cat hg1.pid >> $DAEMON_PIDS
$ hgcloneshallow http://localhost:$HGPORT/ shallow -q
2 files fetched over 1 fetches - (2 misses, 0.00% hit ratio) over *s (glob)
$ grep getfile access.log
- * "GET /?cmd=batch HTTP/1.1" 200 - x-hgarg-1:cmds=getfile+*node%3D1406e74118627694268417491f018a4a883152f0* (glob)
+ * "GET /?cmd=batch HTTP/1.1" 200 - x-hgarg-1:cmds=x_rfl_getfile+*node%3D1406e74118627694268417491f018a4a883152f0* (glob)
Clear filenode cache so we can test fetching with a modified batch size
$ rm -r $TESTTMP/hgcache
@@ -37,17 +37,17 @@
The 'remotefilelog' capability should *not* be exported over http(s),
as the getfile method it offers doesn't work with http.
$ get-with-headers.py localhost:$HGPORT '?cmd=capabilities' | grep lookup | identifyrflcaps
- getfile
- getflogheads
+ x_rfl_getfile
+ x_rfl_getflogheads
$ get-with-headers.py localhost:$HGPORT '?cmd=hello' | grep lookup | identifyrflcaps
- getfile
- getflogheads
+ x_rfl_getfile
+ x_rfl_getflogheads
$ get-with-headers.py localhost:$HGPORT '?cmd=this-command-does-not-exist' | head -n 1
400 no such method: this-command-does-not-exist
- $ get-with-headers.py localhost:$HGPORT '?cmd=getfiles' | head -n 1
- 400 no such method: getfiles
+ $ get-with-headers.py localhost:$HGPORT '?cmd=x_rfl_getfiles' | head -n 1
+ 400 no such method: x_rfl_getfiles
Verify serving from a shallow clone doesn't allow for remotefile
fetches. This also serves to test the error handling for our batchable
diff --git a/hgext/remotefilelog/shallowrepo.py b/hgext/remotefilelog/shallowrepo.py
--- a/hgext/remotefilelog/shallowrepo.py
+++ b/hgext/remotefilelog/shallowrepo.py
@@ -40,7 +40,7 @@
from mercurial.utils import procutil
_hgexecutable = procutil.hgexecutable
-requirement = "remotefilelog"
+requirement = "x_rfl_remotefilelog"
_prefetching = _('prefetching')
# These make*stores functions are global so that other extensions can replace
diff --git a/hgext/remotefilelog/shallowbundle.py b/hgext/remotefilelog/shallowbundle.py
--- a/hgext/remotefilelog/shallowbundle.py
+++ b/hgext/remotefilelog/shallowbundle.py
@@ -25,7 +25,7 @@
LocalFiles = 1
AllFiles = 2
-requirement = "remotefilelog"
+requirement = "x_rfl_remotefilelog"
def shallowgroup(cls, self, nodelist, rlog, lookup, units=None, reorder=None):
if not isinstance(rlog, remotefilelog.remotefilelog):
diff --git a/hgext/remotefilelog/remotefilelogserver.py b/hgext/remotefilelog/remotefilelogserver.py
--- a/hgext/remotefilelog/remotefilelogserver.py
+++ b/hgext/remotefilelog/remotefilelogserver.py
@@ -77,11 +77,11 @@
# support file content requests
wireprotov1server.wireprotocommand(
- 'getflogheads', 'path', permission='pull')(getflogheads)
+ 'x_rfl_getflogheads', 'path', permission='pull')(getflogheads)
wireprotov1server.wireprotocommand(
- 'getfiles', '', permission='pull')(getfiles)
+ 'x_rfl_getfiles', '', permission='pull')(getfiles)
wireprotov1server.wireprotocommand(
- 'getfile', 'file node', permission='pull')(getfile)
+ 'x_rfl_getfile', 'file node', permission='pull')(getfile)
class streamstate(object):
match = None
@@ -198,8 +198,8 @@
if isinstance(proto, _sshv1server):
# legacy getfiles method which only works over ssh
caps.append(shallowrepo.requirement)
- caps.append('getflogheads')
- caps.append('getfile')
+ caps.append('x_rfl_getflogheads')
+ caps.append('x_rfl_getfile')
return caps
extensions.wrapfunction(wireprotov1server, '_capabilities', _capabilities)
@@ -215,7 +215,7 @@
context.basefilectx, '_adjustlinkrev', _adjustlinkrev)
def _iscmd(orig, cmd):
- if cmd == 'getfiles':
+ if cmd == 'x_rfl_getfiles':
return False
return orig(cmd)
diff --git a/hgext/remotefilelog/fileserverclient.py b/hgext/remotefilelog/fileserverclient.py
--- a/hgext/remotefilelog/fileserverclient.py
+++ b/hgext/remotefilelog/fileserverclient.py
@@ -54,8 +54,8 @@
class remotefilepeer(peer.__class__):
@wireprotov1peer.batchable
- def getfile(self, file, node):
- if not self.capable('getfile'):
+ def x_rfl_getfile(self, file, node):
+ if not self.capable('x_rfl_getfile'):
raise error.Abort(
'configured remotefile server does not support getfile')
f = wireprotov1peer.future()
@@ -66,8 +66,8 @@
yield data
@wireprotov1peer.batchable
- def getflogheads(self, path):
- if not self.capable('getflogheads'):
+ def x_rfl_getflogheads(self, path):
+ if not self.capable('x_rfl_getflogheads'):
raise error.Abort('configured remotefile server does not '
'support getflogheads')
f = wireprotov1peer.future()
@@ -202,7 +202,7 @@
with remote.commandexecutor() as e:
futures = []
for m in missed:
- futures.append(e.callcommand('getfile', {
+ futures.append(e.callcommand('x_rfl_getfile', {
'file': idmap[m],
'node': m[-40:]
}))
@@ -217,7 +217,7 @@
def _getfiles_optimistic(
remote, receivemissing, progresstick, missed, idmap, step):
- remote._callstream("getfiles")
+ remote._callstream("x_rfl_getfiles")
i = 0
pipeo = remote._pipeo
pipei = remote._pipei
@@ -379,7 +379,7 @@
remote = conn.peer
# TODO: deduplicate this with the constant in
# shallowrepo
- if remote.capable("remotefilelog"):
+ if remote.capable("x_rfl_remotefilelog"):
if not isinstance(remote, _sshv1peer):
raise error.Abort('remotefilelog requires ssh '
'servers')
@@ -393,7 +393,7 @@
_getfiles = _getfiles_optimistic
_getfiles(remote, self.receivemissing, progresstick,
missed, idmap, step)
- elif remote.capable("getfile"):
+ elif remote.capable("x_rfl_getfile"):
if remote.capable('batch'):
batchdefault = 100
else:
diff --git a/hgext/remotefilelog/__init__.py b/hgext/remotefilelog/__init__.py
--- a/hgext/remotefilelog/__init__.py
+++ b/hgext/remotefilelog/__init__.py
@@ -961,7 +961,7 @@
**kwargs):
if not bundlecaps:
bundlecaps = set()
- bundlecaps.add('remotefilelog')
+ bundlecaps.add('x_rfl_remotefilelog')
return orig(source, heads=heads, common=common, bundlecaps=bundlecaps,
**kwargs)
To: durin42, #hg-reviewers
Cc: mercurial-devel
More information about the Mercurial-devel
mailing list