Mercurial > hg > mercurial-source
changeset 36599:768326377e4d stable
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
author | Boris Feld <boris.feld@octobus.net> |
---|---|
date | Wed, 31 Jan 2018 16:31:34 +0100 (2018-01-31) |
parents | 84965e5f3241 |
children | 92b7039613d0 |
files | mercurial/bundle2.py mercurial/exchange.py tests/test-clone-uncompressed.t |
diffstat | 3 files changed, 16 insertions(+), 16 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/bundle2.py +++ b/mercurial/bundle2.py @@ -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 +++ b/mercurial/exchange.py @@ -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 +++ b/tests/test-clone-uncompressed.t @@ -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