# HG changeset patch # User Pierre-Yves David # Date 1395183384 25200 # Node ID c5aaeca0cfbfaad91eaa9c1a40f04b424bce2bd9 # Parent db9d3991d2c60ea40660474e0c1f7cd1716780fe bundle2: support for unbundling simple parameter the unbundler now understand simple list of parameter. diff -r db9d3991d2c6 -r c5aaeca0cfbf mercurial/bundle2.py --- 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""" diff -r db9d3991d2c6 -r c5aaeca0cfbf tests/test-bundle2.t --- 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 +