diff --git a/treemanifest/__init__.py b/treemanifest/__init__.py --- a/treemanifest/__init__.py +++ b/treemanifest/__init__.py @@ -87,7 +87,6 @@ sshserver, templatekw, util, - wireproto, ) from mercurial.i18n import _ from mercurial.node import bin, hex, nullid @@ -135,6 +134,14 @@ osutil = policy.importmod(r'osutil') + +try: + from mercurial import wireprototypes, wireprotov1server, wireprotov1peer + wireprotov1server.commands +except ImportError, AttributeError: + from mercurial import wireproto + wireprototypes = wireprotov1server = wireprotov1peer = wireproto + cmdtable = {} command = registrar.command(cmdtable) @@ -171,8 +178,8 @@ extensions.wrapcommand(commands.table, 'pull', pull) - wireproto.commands['gettreepack'] = (servergettreepack, '*') - wireproto.wirepeer.gettreepack = clientgettreepack + wireprotov1server.commands['gettreepack'] = (servergettreepack, '*') + wireprotov1peer.wirepeer.gettreepack = clientgettreepack extensions.wrapfunction(repair, 'striptrees', striptrees) extensions.wrapfunction(repair, '_collectmanifest', _collectmanifest) @@ -575,10 +582,12 @@ caps.append('gettreepack') return caps - if util.safehasattr(wireproto, '_capabilities'): - extensions.wrapfunction(wireproto, '_capabilities', _capabilities) + if util.safehasattr(wireprotov1server, '_capabilities'): + extensions.wrapfunction(wireprotov1server, '_capabilities', + _capabilities) else: - extensions.wrapfunction(wireproto, 'capabilities', _capabilities) + extensions.wrapfunction(wireprotov1server, 'capabilities', + _capabilities) def _addmanifestgroup(*args, **kwargs): raise error.Abort(_("cannot push commits to a treemanifest transition " @@ -1385,9 +1394,10 @@ def clientgettreepack(remote, rootdir, mfnodes, basemfnodes, directories): opts = {} opts['rootdir'] = rootdir - opts['mfnodes'] = wireproto.encodelist(mfnodes) - opts['basemfnodes'] = wireproto.encodelist(basemfnodes) - opts['directories'] = ','.join(wireproto.escapearg(d) for d in directories) + opts['mfnodes'] = wireprototypes.encodelist(mfnodes) + opts['basemfnodes'] = wireprototypes.encodelist(basemfnodes) + opts['directories'] = ','.join(wireprotov1peer.escapearg(d) + for d in directories) f = remote._callcompressable("gettreepack", **opts) return bundle2.getunbundler(remote.ui, f) @@ -1429,9 +1439,9 @@ rootdir = args['rootdir'] # Sort to produce a consistent output - mfnodes = sorted(wireproto.decodelist(args['mfnodes'])) - basemfnodes = sorted(wireproto.decodelist(args['basemfnodes'])) - directories = sorted(list(wireproto.unescapearg(d) for d + mfnodes = sorted(wireprototypes.decodelist(args['mfnodes'])) + basemfnodes = sorted(wireprototypes.decodelist(args['basemfnodes'])) + directories = sorted(list(wireprotov1peer.unescapearg(d) for d in args['directories'].split(',') if d != '')) try: @@ -1452,7 +1462,8 @@ advargs.append(('hint', exc.hint)) bundler.addpart(bundle2.bundlepart('error:abort', manargs, advargs)) - return wireproto.streamres(gen=bundler.getchunks(), v1compressible=True) + return wireprototypes.streamres(gen=bundler.getchunks(), + v1compressible=True) def generatepackstream(repo, rootdir, mfnodes, basemfnodes, directories): """