##// END OF EJS Templates
narrowwirepeer: add some strkwargs to fix a crash on py3...
Augie Fackler -
r36369:87e950a0 default
parent child Browse files
Show More
@@ -1,52 +1,52 b''
1 # narrowwirepeer.py - passes narrow spec with unbundle command
1 # narrowwirepeer.py - passes narrow spec with unbundle command
2 #
2 #
3 # Copyright 2017 Google, Inc.
3 # Copyright 2017 Google, Inc.
4 #
4 #
5 # This software may be used and distributed according to the terms of the
5 # This software may be used and distributed according to the terms of the
6 # GNU General Public License version 2 or any later version.
6 # GNU General Public License version 2 or any later version.
7
7
8 from __future__ import absolute_import
8 from __future__ import absolute_import
9
9
10 from mercurial.i18n import _
10 from mercurial.i18n import _
11 from mercurial import (
11 from mercurial import (
12 error,
12 error,
13 extensions,
13 extensions,
14 hg,
14 hg,
15 narrowspec,
15 narrowspec,
16 node,
16 node,
17 )
17 )
18
18
19 def uisetup():
19 def uisetup():
20 def peersetup(ui, peer):
20 def peersetup(ui, peer):
21 # We must set up the expansion before reposetup below, since it's used
21 # We must set up the expansion before reposetup below, since it's used
22 # at clone time before we have a repo.
22 # at clone time before we have a repo.
23 class expandingpeer(peer.__class__):
23 class expandingpeer(peer.__class__):
24 def expandnarrow(self, narrow_include, narrow_exclude, nodes):
24 def expandnarrow(self, narrow_include, narrow_exclude, nodes):
25 ui.status(_("expanding narrowspec\n"))
25 ui.status(_("expanding narrowspec\n"))
26 if not self.capable('exp-expandnarrow'):
26 if not self.capable('exp-expandnarrow'):
27 raise error.Abort(
27 raise error.Abort(
28 'peer does not support expanding narrowspecs')
28 'peer does not support expanding narrowspecs')
29
29
30 hex_nodes = (node.hex(n) for n in nodes)
30 hex_nodes = (node.hex(n) for n in nodes)
31 new_narrowspec = self._call(
31 new_narrowspec = self._call(
32 'expandnarrow',
32 'expandnarrow',
33 includepats=','.join(narrow_include),
33 includepats=','.join(narrow_include),
34 excludepats=','.join(narrow_exclude),
34 excludepats=','.join(narrow_exclude),
35 nodes=','.join(hex_nodes))
35 nodes=','.join(hex_nodes))
36
36
37 return narrowspec.parseserverpatterns(new_narrowspec)
37 return narrowspec.parseserverpatterns(new_narrowspec)
38 peer.__class__ = expandingpeer
38 peer.__class__ = expandingpeer
39 hg.wirepeersetupfuncs.append(peersetup)
39 hg.wirepeersetupfuncs.append(peersetup)
40
40
41 def reposetup(repo):
41 def reposetup(repo):
42 def wirereposetup(ui, peer):
42 def wirereposetup(ui, peer):
43 def wrapped(orig, cmd, *args, **kwargs):
43 def wrapped(orig, cmd, *args, **kwargs):
44 if cmd == 'unbundle':
44 if cmd == 'unbundle':
45 # TODO: don't blindly add include/exclude wireproto
45 # TODO: don't blindly add include/exclude wireproto
46 # arguments to unbundle.
46 # arguments to unbundle.
47 include, exclude = repo.narrowpats
47 include, exclude = repo.narrowpats
48 kwargs["includepats"] = ','.join(include)
48 kwargs[r"includepats"] = ','.join(include)
49 kwargs["excludepats"] = ','.join(exclude)
49 kwargs[r"excludepats"] = ','.join(exclude)
50 return orig(cmd, *args, **kwargs)
50 return orig(cmd, *args, **kwargs)
51 extensions.wrapfunction(peer, '_calltwowaystream', wrapped)
51 extensions.wrapfunction(peer, '_calltwowaystream', wrapped)
52 hg.wirepeersetupfuncs.append(wirereposetup)
52 hg.wirepeersetupfuncs.append(wirereposetup)
General Comments 0
You need to be logged in to leave comments. Login now