Mercurial > hg-stable
changeset 20805:c5aaeca0cfbf
bundle2: support for unbundling simple parameter
the unbundler now understand simple list of parameter.
author | Pierre-Yves David <pierre-yves.david@fb.com> |
---|---|
date | Tue, 18 Mar 2014 15:56:24 -0700 |
parents | db9d3991d2c6 |
children | d66862b87ae6 |
files | mercurial/bundle2.py tests/test-bundle2.t |
diffstat | 2 files changed, 25 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/bundle2.py Wed Mar 19 14:52:03 2014 -0700 +++ b/mercurial/bundle2.py Tue Mar 18 15:56:24 2014 -0700 @@ -142,9 +142,12 @@ @util.propertycache def params(self): """dictionnary of stream level parameters""" - paramsize = self._readexact(2) - assert paramsize == '\0\0' - return {} + params = {} + paramssize = self._unpack(_fstreamparamsize)[0] + if paramssize: + for p in self._readexact(paramssize).split(' '): + params[p] = None + return params def __iter__(self): """yield all parts contained in the stream"""
--- a/tests/test-bundle2.t Wed Mar 19 14:52:03 2014 -0700 +++ b/tests/test-bundle2.t Tue Mar 18 15:56:24 2014 -0700 @@ -30,6 +30,8 @@ > """read a bundle2 container from standard input""" > unbundler = bundle2.unbundle20(sys.stdin) > ui.write('options count: %i\n' % len(unbundler.params)) + > for key in sorted(unbundler.params): + > ui.write('- %s\n' % key) > parts = list(unbundler) > ui.write('parts count: %i\n' % len(parts)) > EOF @@ -83,12 +85,28 @@ Simplest possible parameters form -Test generation +Test generation simple option $ hg bundle2 --param 'caution' HG20\x00\x07caution\x00\x00 (no-eol) (esc) +Test unbundling + + $ hg bundle2 --param 'caution' | hg unbundle2 + options count: 1 + - caution + parts count: 0 + Test generation multiple option $ hg bundle2 --param 'caution' --param 'meal' HG20\x00\x0ccaution meal\x00\x00 (no-eol) (esc) + +Test unbundling + + $ hg bundle2 --param 'caution' --param 'meal' | hg unbundle2 + options count: 2 + - caution + - meal + parts count: 0 +