bundle2: fix the formatting of the stream part requirements
Use the same pre-encoded normalization as bundlespecs for the stream v2 part
requirements. As it touch the wire protocol, it needs to change before the
release.
This was spotted by Gregory Szorc.
Differential Revision: https://phab.mercurial-scm.org/D1950
--- a/mercurial/bundle2.py Mon Jan 29 10:28:10 2018 +0100
+++ b/mercurial/bundle2.py Wed Jan 31 16:31:34 2018 +0100
@@ -2143,7 +2143,7 @@
@parthandler('stream2', ('requirements', 'filecount', 'bytecount'))
def handlestreamv2bundle(op, part):
- requirements = part.params['requirements'].split()
+ requirements = urlreq.unquote(part.params['requirements']).split(',')
filecount = int(part.params['filecount'])
bytecount = int(part.params['bytecount'])
--- a/mercurial/exchange.py Mon Jan 29 10:28:10 2018 +0100
+++ b/mercurial/exchange.py Wed Jan 31 16:31:34 2018 +0100
@@ -1793,7 +1793,7 @@
bundler.prefercompressed = False
filecount, bytecount, it = streamclone.generatev2(repo)
- requirements = ' '.join(sorted(repo.requirements))
+ requirements = _formatrequirementsspec(repo.requirements)
part = bundler.newpart('stream2', data=it)
part.addparam('bytecount', '%d' % bytecount, mandatory=True)
part.addparam('filecount', '%d' % filecount, mandatory=True)
--- a/tests/test-clone-uncompressed.t Mon Jan 29 10:28:10 2018 +0100
+++ b/tests/test-clone-uncompressed.t Wed Jan 31 16:31:34 2018 +0100
@@ -199,23 +199,23 @@
$ f --size --hex --bytes 256 body
- body: size=112222
+ body: size=112230
0000: 04 6e 6f 6e 65 48 47 32 30 00 00 00 00 00 00 00 |.noneHG20.......|
- 0010: 68 07 53 54 52 45 41 4d 32 00 00 00 00 03 00 09 |h.STREAM2.......|
- 0020: 05 09 04 0c 2d 62 79 74 65 63 6f 75 6e 74 39 38 |....-bytecount98|
+ 0010: 70 07 53 54 52 45 41 4d 32 00 00 00 00 03 00 09 |p.STREAM2.......|
+ 0020: 05 09 04 0c 35 62 79 74 65 63 6f 75 6e 74 39 38 |....5bytecount98|
0030: 37 35 38 66 69 6c 65 63 6f 75 6e 74 31 30 33 30 |758filecount1030|
0040: 72 65 71 75 69 72 65 6d 65 6e 74 73 64 6f 74 65 |requirementsdote|
- 0050: 6e 63 6f 64 65 20 66 6e 63 61 63 68 65 20 67 65 |ncode fncache ge|
- 0060: 6e 65 72 61 6c 64 65 6c 74 61 20 72 65 76 6c 6f |neraldelta revlo|
- 0070: 67 76 31 20 73 74 6f 72 65 00 00 80 00 73 08 42 |gv1 store....s.B|
- 0080: 64 61 74 61 2f 30 2e 69 00 03 00 01 00 00 00 00 |data/0.i........|
- 0090: 00 00 00 02 00 00 00 01 00 00 00 00 00 00 00 01 |................|
- 00a0: ff ff ff ff ff ff ff ff 80 29 63 a0 49 d3 23 87 |.........)c.I.#.|
- 00b0: bf ce fe 56 67 92 67 2c 69 d1 ec 39 00 00 00 00 |...Vg.g,i..9....|
- 00c0: 00 00 00 00 00 00 00 00 75 30 73 08 42 64 61 74 |........u0s.Bdat|
- 00d0: 61 2f 31 2e 69 00 03 00 01 00 00 00 00 00 00 00 |a/1.i...........|
- 00e0: 02 00 00 00 01 00 00 00 00 00 00 00 01 ff ff ff |................|
- 00f0: ff ff ff ff ff f9 76 da 1d 0d f2 25 6c de 08 db |......v....%l...|
+ 0050: 6e 63 6f 64 65 25 32 43 66 6e 63 61 63 68 65 25 |ncode%2Cfncache%|
+ 0060: 32 43 67 65 6e 65 72 61 6c 64 65 6c 74 61 25 32 |2Cgeneraldelta%2|
+ 0070: 43 72 65 76 6c 6f 67 76 31 25 32 43 73 74 6f 72 |Crevlogv1%2Cstor|
+ 0080: 65 00 00 80 00 73 08 42 64 61 74 61 2f 30 2e 69 |e....s.Bdata/0.i|
+ 0090: 00 03 00 01 00 00 00 00 00 00 00 02 00 00 00 01 |................|
+ 00a0: 00 00 00 00 00 00 00 01 ff ff ff ff ff ff ff ff |................|
+ 00b0: 80 29 63 a0 49 d3 23 87 bf ce fe 56 67 92 67 2c |.)c.I.#....Vg.g,|
+ 00c0: 69 d1 ec 39 00 00 00 00 00 00 00 00 00 00 00 00 |i..9............|
+ 00d0: 75 30 73 08 42 64 61 74 61 2f 31 2e 69 00 03 00 |u0s.Bdata/1.i...|
+ 00e0: 01 00 00 00 00 00 00 00 02 00 00 00 01 00 00 00 |................|
+ 00f0: 00 00 00 00 01 ff ff ff ff ff ff ff ff f9 76 da |..............v.|
--uncompressed is an alias to --stream