59 ellipses: whether to send ellipses data or not |
58 ellipses: whether to send ellipses data or not |
60 """ |
59 """ |
61 |
60 |
62 preferuncompressed = False |
61 preferuncompressed = False |
63 try: |
62 try: |
64 oldincludes = wireprototypes.decodelist(oldincludes) |
63 def splitpaths(data): |
65 newincludes = wireprototypes.decodelist(newincludes) |
64 # work around ''.split(',') => [''] |
66 oldexcludes = wireprototypes.decodelist(oldexcludes) |
65 return data.split(b',') if data else [] |
67 newexcludes = wireprototypes.decodelist(newexcludes) |
66 oldincludes = splitpaths(oldincludes) |
|
67 newincludes = splitpaths(newincludes) |
|
68 oldexcludes = splitpaths(oldexcludes) |
|
69 newexcludes = splitpaths(newexcludes) |
68 # validate the patterns |
70 # validate the patterns |
69 narrowspec.validatepatterns(set(oldincludes)) |
71 narrowspec.validatepatterns(set(oldincludes)) |
70 narrowspec.validatepatterns(set(newincludes)) |
72 narrowspec.validatepatterns(set(newincludes)) |
71 narrowspec.validatepatterns(set(oldexcludes)) |
73 narrowspec.validatepatterns(set(oldexcludes)) |
72 narrowspec.validatepatterns(set(newexcludes)) |
74 narrowspec.validatepatterns(set(newexcludes)) |
73 |
75 |
74 common = wireprototypes.decodelist(commonheads) |
76 common = wireprototypes.decodelist(commonheads) |
75 known = wireprototypes.decodelist(known) |
77 known = wireprototypes.decodelist(known) |
76 known = {nodemod.bin(n) for n in known} |
|
77 if ellipses == '0': |
78 if ellipses == '0': |
78 ellipses = False |
79 ellipses = False |
79 else: |
80 else: |
80 ellipses = bool(ellipses) |
81 ellipses = bool(ellipses) |
81 cgversion = cgversion |
82 cgversion = cgversion |
104 chunks = bundler.getchunks() |
105 chunks = bundler.getchunks() |
105 return wireprototypes.streamres(gen=chunks, |
106 return wireprototypes.streamres(gen=chunks, |
106 prefer_uncompressed=preferuncompressed) |
107 prefer_uncompressed=preferuncompressed) |
107 |
108 |
108 def peernarrowwiden(remote, **kwargs): |
109 def peernarrowwiden(remote, **kwargs): |
109 for ch in (r'oldincludes', r'newincludes', r'oldexcludes', r'newexcludes', |
110 for ch in (r'commonheads', r'known'): |
110 r'commonheads', r'known'): |
|
111 kwargs[ch] = wireprototypes.encodelist(kwargs[ch]) |
111 kwargs[ch] = wireprototypes.encodelist(kwargs[ch]) |
|
112 |
|
113 for ch in (r'oldincludes', r'newincludes', r'oldexcludes', r'newexcludes'): |
|
114 kwargs[ch] = b','.join(kwargs[ch]) |
112 |
115 |
113 kwargs[r'ellipses'] = '%i' % bool(kwargs[r'ellipses']) |
116 kwargs[r'ellipses'] = '%i' % bool(kwargs[r'ellipses']) |
114 f = remote._callcompressable('narrow_widen', **kwargs) |
117 f = remote._callcompressable('narrow_widen', **kwargs) |
115 return bundle2.getunbundler(remote.ui, f) |
118 return bundle2.getunbundler(remote.ui, f) |