diff --git a/mercurial/bundle2.py b/mercurial/bundle2.py index b93bb639451ae789276ed0b43e41cf0d4d68a09a_bWVyY3VyaWFsL2J1bmRsZTIucHk=..47293877b54c13a46dca4ffd8086d572a86af6e7_bWVyY3VyaWFsL2J1bmRsZTIucHk= 100644 --- a/mercurial/bundle2.py +++ b/mercurial/bundle2.py @@ -152,7 +152,10 @@ paramssize = self._unpack(_fstreamparamsize)[0] if paramssize: for p in self._readexact(paramssize).split(' '): - params[p] = None + p = p.split('=', 1) + if len(p) < 2: + p.append(None) + params[p[0]] = p[1] return params def __iter__(self): diff --git a/tests/test-bundle2.t b/tests/test-bundle2.t index b93bb639451ae789276ed0b43e41cf0d4d68a09a_dGVzdHMvdGVzdC1idW5kbGUyLnQ=..47293877b54c13a46dca4ffd8086d572a86af6e7_dGVzdHMvdGVzdC1idW5kbGUyLnQ= 100644 --- a/tests/test-bundle2.t +++ b/tests/test-bundle2.t @@ -34,6 +34,9 @@ > ui.write('options count: %i\n' % len(unbundler.params)) > for key in sorted(unbundler.params): > ui.write('- %s\n' % key) + > value = unbundler.params[key] + > if value is not None: + > ui.write(' %s\n' % value) > parts = list(unbundler) > ui.write('parts count: %i\n' % len(parts)) > EOF @@ -120,3 +123,12 @@ $ hg bundle2 --param 'caution' --param 'meal=vegan' --param 'elephants' HG20\x00\x1ccaution meal=vegan elephants\x00\x00 (no-eol) (esc) +Test unbundling + + $ hg bundle2 --param 'caution' --param 'meal=vegan' --param 'elephants' | hg unbundle2 + options count: 3 + - caution + - elephants + - meal + vegan + parts count: 0