Mercurial > hg
annotate hgext/narrow/narrowwirepeer.py @ 40212:885d5cf9b6a4
py3: add some r'' prefixes in hgext/narrow/narrowwirepeer.py
This fixes test-narrow-widen-no-ellipsis.t on Python 3.
# skip-blame because just r'' prefixes
Differential Revision: https://phab.mercurial-scm.org/D5023
author | Pulkit Goyal <pulkit@yandex-team.ru> |
---|---|
date | Sat, 13 Oct 2018 00:35:37 +0300 |
parents | 74558635dad5 |
children | 2c5835b4246b |
rev | line source |
---|---|
36079
a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
1 # narrowwirepeer.py - passes narrow spec with unbundle command |
a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
2 # |
a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
3 # Copyright 2017 Google, Inc. |
a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
4 # |
a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
5 # This software may be used and distributed according to the terms of the |
a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
6 # GNU General Public License version 2 or any later version. |
a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
7 |
a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
8 from __future__ import absolute_import |
a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
9 |
a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
10 from mercurial import ( |
40070
8feae5b989bc
narrow: the first version of narrow_widen wireprotocol command
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39934
diff
changeset
|
11 bundle2, |
8feae5b989bc
narrow: the first version of narrow_widen wireprotocol command
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39934
diff
changeset
|
12 error, |
36079
a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
13 extensions, |
a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
14 hg, |
40070
8feae5b989bc
narrow: the first version of narrow_widen wireprotocol command
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39934
diff
changeset
|
15 match as matchmod, |
8feae5b989bc
narrow: the first version of narrow_widen wireprotocol command
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39934
diff
changeset
|
16 narrowspec, |
8feae5b989bc
narrow: the first version of narrow_widen wireprotocol command
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39934
diff
changeset
|
17 pycompat, |
8feae5b989bc
narrow: the first version of narrow_widen wireprotocol command
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39934
diff
changeset
|
18 wireprototypes, |
8feae5b989bc
narrow: the first version of narrow_widen wireprotocol command
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39934
diff
changeset
|
19 wireprotov1peer, |
39523
c90514043eaa
narrow: add narrow and ellipses as server capabilities
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
36351
diff
changeset
|
20 wireprotov1server, |
36079
a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
21 ) |
a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
22 |
a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
23 def uisetup(): |
40070
8feae5b989bc
narrow: the first version of narrow_widen wireprotocol command
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39934
diff
changeset
|
24 wireprotov1peer.wirepeer.narrow_widen = peernarrowwiden |
39523
c90514043eaa
narrow: add narrow and ellipses as server capabilities
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
36351
diff
changeset
|
25 |
36079
a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
26 def reposetup(repo): |
a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
27 def wirereposetup(ui, peer): |
a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
28 def wrapped(orig, cmd, *args, **kwargs): |
a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
29 if cmd == 'unbundle': |
36102
b60c577b6e03
narrowwirepeer: add TODO about how we add wireproto args to unbundle :(
Augie Fackler <augie@google.com>
parents:
36101
diff
changeset
|
30 # TODO: don't blindly add include/exclude wireproto |
b60c577b6e03
narrowwirepeer: add TODO about how we add wireproto args to unbundle :(
Augie Fackler <augie@google.com>
parents:
36101
diff
changeset
|
31 # arguments to unbundle. |
36079
a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
32 include, exclude = repo.narrowpats |
36351
87e950a070e6
narrowwirepeer: add some strkwargs to fix a crash on py3
Augie Fackler <augie@google.com>
parents:
36160
diff
changeset
|
33 kwargs[r"includepats"] = ','.join(include) |
87e950a070e6
narrowwirepeer: add some strkwargs to fix a crash on py3
Augie Fackler <augie@google.com>
parents:
36160
diff
changeset
|
34 kwargs[r"excludepats"] = ','.join(exclude) |
36079
a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
35 return orig(cmd, *args, **kwargs) |
a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
36 extensions.wrapfunction(peer, '_calltwowaystream', wrapped) |
a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
37 hg.wirepeersetupfuncs.append(wirereposetup) |
40070
8feae5b989bc
narrow: the first version of narrow_widen wireprotocol command
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39934
diff
changeset
|
38 |
8feae5b989bc
narrow: the first version of narrow_widen wireprotocol command
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39934
diff
changeset
|
39 @wireprotov1server.wireprotocommand('narrow_widen', 'oldincludes oldexcludes' |
8feae5b989bc
narrow: the first version of narrow_widen wireprotocol command
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39934
diff
changeset
|
40 ' newincludes newexcludes' |
8feae5b989bc
narrow: the first version of narrow_widen wireprotocol command
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39934
diff
changeset
|
41 ' commonheads cgversion' |
8feae5b989bc
narrow: the first version of narrow_widen wireprotocol command
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39934
diff
changeset
|
42 ' known ellipses', |
8feae5b989bc
narrow: the first version of narrow_widen wireprotocol command
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39934
diff
changeset
|
43 permission='pull') |
8feae5b989bc
narrow: the first version of narrow_widen wireprotocol command
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39934
diff
changeset
|
44 def narrow_widen(repo, proto, oldincludes, oldexcludes, newincludes, |
8feae5b989bc
narrow: the first version of narrow_widen wireprotocol command
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39934
diff
changeset
|
45 newexcludes, commonheads, cgversion, known, ellipses): |
8feae5b989bc
narrow: the first version of narrow_widen wireprotocol command
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39934
diff
changeset
|
46 """wireprotocol command to send data when a narrow clone is widen. We will |
8feae5b989bc
narrow: the first version of narrow_widen wireprotocol command
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39934
diff
changeset
|
47 be sending a changegroup here. |
8feae5b989bc
narrow: the first version of narrow_widen wireprotocol command
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39934
diff
changeset
|
48 |
8feae5b989bc
narrow: the first version of narrow_widen wireprotocol command
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39934
diff
changeset
|
49 The current set of arguments which are required: |
8feae5b989bc
narrow: the first version of narrow_widen wireprotocol command
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39934
diff
changeset
|
50 oldincludes: the old includes of the narrow copy |
8feae5b989bc
narrow: the first version of narrow_widen wireprotocol command
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39934
diff
changeset
|
51 oldexcludes: the old excludes of the narrow copy |
8feae5b989bc
narrow: the first version of narrow_widen wireprotocol command
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39934
diff
changeset
|
52 newincludes: the new includes of the narrow copy |
8feae5b989bc
narrow: the first version of narrow_widen wireprotocol command
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39934
diff
changeset
|
53 newexcludes: the new excludes of the narrow copy |
8feae5b989bc
narrow: the first version of narrow_widen wireprotocol command
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39934
diff
changeset
|
54 commonheads: list of heads which are common between the server and client |
8feae5b989bc
narrow: the first version of narrow_widen wireprotocol command
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39934
diff
changeset
|
55 cgversion(maybe): the changegroup version to produce |
8feae5b989bc
narrow: the first version of narrow_widen wireprotocol command
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39934
diff
changeset
|
56 known: list of nodes which are known on the client (used in ellipses cases) |
8feae5b989bc
narrow: the first version of narrow_widen wireprotocol command
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39934
diff
changeset
|
57 ellipses: whether to send ellipses data or not |
8feae5b989bc
narrow: the first version of narrow_widen wireprotocol command
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39934
diff
changeset
|
58 """ |
8feae5b989bc
narrow: the first version of narrow_widen wireprotocol command
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39934
diff
changeset
|
59 |
40148
74558635dad5
narrow: don't compress the bundle2 when sending 'error:abort'
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
40075
diff
changeset
|
60 preferuncompressed = False |
40070
8feae5b989bc
narrow: the first version of narrow_widen wireprotocol command
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39934
diff
changeset
|
61 try: |
8feae5b989bc
narrow: the first version of narrow_widen wireprotocol command
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39934
diff
changeset
|
62 oldincludes = wireprototypes.decodelist(oldincludes) |
8feae5b989bc
narrow: the first version of narrow_widen wireprotocol command
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39934
diff
changeset
|
63 newincludes = wireprototypes.decodelist(newincludes) |
8feae5b989bc
narrow: the first version of narrow_widen wireprotocol command
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39934
diff
changeset
|
64 oldexcludes = wireprototypes.decodelist(oldexcludes) |
8feae5b989bc
narrow: the first version of narrow_widen wireprotocol command
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39934
diff
changeset
|
65 newexcludes = wireprototypes.decodelist(newexcludes) |
8feae5b989bc
narrow: the first version of narrow_widen wireprotocol command
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39934
diff
changeset
|
66 # validate the patterns |
8feae5b989bc
narrow: the first version of narrow_widen wireprotocol command
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39934
diff
changeset
|
67 narrowspec.validatepatterns(set(oldincludes)) |
8feae5b989bc
narrow: the first version of narrow_widen wireprotocol command
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39934
diff
changeset
|
68 narrowspec.validatepatterns(set(newincludes)) |
8feae5b989bc
narrow: the first version of narrow_widen wireprotocol command
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39934
diff
changeset
|
69 narrowspec.validatepatterns(set(oldexcludes)) |
8feae5b989bc
narrow: the first version of narrow_widen wireprotocol command
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39934
diff
changeset
|
70 narrowspec.validatepatterns(set(newexcludes)) |
8feae5b989bc
narrow: the first version of narrow_widen wireprotocol command
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39934
diff
changeset
|
71 |
8feae5b989bc
narrow: the first version of narrow_widen wireprotocol command
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39934
diff
changeset
|
72 common = wireprototypes.decodelist(commonheads) |
8feae5b989bc
narrow: the first version of narrow_widen wireprotocol command
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39934
diff
changeset
|
73 known = None |
8feae5b989bc
narrow: the first version of narrow_widen wireprotocol command
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39934
diff
changeset
|
74 if known: |
8feae5b989bc
narrow: the first version of narrow_widen wireprotocol command
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39934
diff
changeset
|
75 known = wireprototypes.decodelist(known) |
8feae5b989bc
narrow: the first version of narrow_widen wireprotocol command
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39934
diff
changeset
|
76 if ellipses == '0': |
8feae5b989bc
narrow: the first version of narrow_widen wireprotocol command
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39934
diff
changeset
|
77 ellipses = False |
8feae5b989bc
narrow: the first version of narrow_widen wireprotocol command
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39934
diff
changeset
|
78 else: |
8feae5b989bc
narrow: the first version of narrow_widen wireprotocol command
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39934
diff
changeset
|
79 ellipses = bool(ellipses) |
8feae5b989bc
narrow: the first version of narrow_widen wireprotocol command
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39934
diff
changeset
|
80 cgversion = cgversion |
8feae5b989bc
narrow: the first version of narrow_widen wireprotocol command
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39934
diff
changeset
|
81 newmatch = narrowspec.match(repo.root, include=newincludes, |
8feae5b989bc
narrow: the first version of narrow_widen wireprotocol command
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39934
diff
changeset
|
82 exclude=newexcludes) |
8feae5b989bc
narrow: the first version of narrow_widen wireprotocol command
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39934
diff
changeset
|
83 oldmatch = narrowspec.match(repo.root, include=oldincludes, |
8feae5b989bc
narrow: the first version of narrow_widen wireprotocol command
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39934
diff
changeset
|
84 exclude=oldexcludes) |
8feae5b989bc
narrow: the first version of narrow_widen wireprotocol command
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39934
diff
changeset
|
85 diffmatch = matchmod.differencematcher(newmatch, oldmatch) |
8feae5b989bc
narrow: the first version of narrow_widen wireprotocol command
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39934
diff
changeset
|
86 |
40072
1ea80ac13f19
narrow: move the code to generate a widening bundle2 to core
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
40071
diff
changeset
|
87 bundler = bundle2.widen_bundle(repo, diffmatch, common, known, |
40071
e8132a8897da
narrow: start returning bundle2 from widen_bundle()
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
40070
diff
changeset
|
88 cgversion, ellipses) |
40070
8feae5b989bc
narrow: the first version of narrow_widen wireprotocol command
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39934
diff
changeset
|
89 except error.Abort as exc: |
40071
e8132a8897da
narrow: start returning bundle2 from widen_bundle()
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
40070
diff
changeset
|
90 bundler = bundle2.bundle20(repo.ui) |
40070
8feae5b989bc
narrow: the first version of narrow_widen wireprotocol command
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39934
diff
changeset
|
91 manargs = [('message', pycompat.bytestr(exc))] |
8feae5b989bc
narrow: the first version of narrow_widen wireprotocol command
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39934
diff
changeset
|
92 advargs = [] |
8feae5b989bc
narrow: the first version of narrow_widen wireprotocol command
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39934
diff
changeset
|
93 if exc.hint is not None: |
8feae5b989bc
narrow: the first version of narrow_widen wireprotocol command
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39934
diff
changeset
|
94 advargs.append(('hint', exc.hint)) |
8feae5b989bc
narrow: the first version of narrow_widen wireprotocol command
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39934
diff
changeset
|
95 bundler.addpart(bundle2.bundlepart('error:abort', manargs, advargs)) |
40148
74558635dad5
narrow: don't compress the bundle2 when sending 'error:abort'
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
40075
diff
changeset
|
96 preferuncompressed = True |
40070
8feae5b989bc
narrow: the first version of narrow_widen wireprotocol command
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39934
diff
changeset
|
97 |
8feae5b989bc
narrow: the first version of narrow_widen wireprotocol command
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39934
diff
changeset
|
98 chunks = bundler.getchunks() |
40148
74558635dad5
narrow: don't compress the bundle2 when sending 'error:abort'
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
40075
diff
changeset
|
99 return wireprototypes.streamres(gen=chunks, |
74558635dad5
narrow: don't compress the bundle2 when sending 'error:abort'
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
40075
diff
changeset
|
100 prefer_uncompressed=preferuncompressed) |
40070
8feae5b989bc
narrow: the first version of narrow_widen wireprotocol command
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39934
diff
changeset
|
101 |
8feae5b989bc
narrow: the first version of narrow_widen wireprotocol command
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39934
diff
changeset
|
102 def peernarrowwiden(remote, **kwargs): |
40212
885d5cf9b6a4
py3: add some r'' prefixes in hgext/narrow/narrowwirepeer.py
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
40148
diff
changeset
|
103 for ch in (r'oldincludes', r'newincludes', r'oldexcludes', r'newexcludes', |
885d5cf9b6a4
py3: add some r'' prefixes in hgext/narrow/narrowwirepeer.py
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
40148
diff
changeset
|
104 r'commonheads', r'known'): |
40070
8feae5b989bc
narrow: the first version of narrow_widen wireprotocol command
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39934
diff
changeset
|
105 kwargs[ch] = wireprototypes.encodelist(kwargs[ch]) |
8feae5b989bc
narrow: the first version of narrow_widen wireprotocol command
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39934
diff
changeset
|
106 |
40212
885d5cf9b6a4
py3: add some r'' prefixes in hgext/narrow/narrowwirepeer.py
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
40148
diff
changeset
|
107 kwargs[r'ellipses'] = '%i' % bool(kwargs[r'ellipses']) |
40070
8feae5b989bc
narrow: the first version of narrow_widen wireprotocol command
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39934
diff
changeset
|
108 f = remote._callcompressable('narrow_widen', **kwargs) |
8feae5b989bc
narrow: the first version of narrow_widen wireprotocol command
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39934
diff
changeset
|
109 return bundle2.getunbundler(remote.ui, f) |