Mercurial > hg
view contrib/fuzz/manifest_corpus.py @ 40589:054d0fcba2c4
commandserver: add experimental option to use separate message channel
This is loosely based on the idea of the TortoiseHg's pipeui extension,
which attaches ui.label to message text so the command-server client can
capture prompt text, for example.
https://bitbucket.org/tortoisehg/thg/src/4.7.2/tortoisehg/util/pipeui.py
I was thinking that this functionality could be generalized to templating,
but changed mind as doing template stuff would be unnecessarily complex.
It's merely a status message, a simple serialization option should suffice.
Since this slightly changes the command-server protocol, it's gated by a
config knob. If the config is enabled, and if it's supported by the server,
"message-encoding: <name>" is advertised so the client can stop parsing
'o'/'e' channel data and read encoded messages from the 'm' channel. As we
might add new message encodings in future releases, client can specify a list
of encoding names in preferred order.
This patch includes 'cbor' encoding as example. Perhaps, 'json' should be
supported as well.
author | Yuya Nishihara <yuya@tcha.org> |
---|---|
date | Sun, 18 Jan 2015 18:49:59 +0900 |
parents | 8c692a6b5ad1 |
children | 2372284d9457 |
line wrap: on
line source
from __future__ import absolute_import, print_function import argparse import zipfile ap = argparse.ArgumentParser() ap.add_argument("out", metavar="some.zip", type=str, nargs=1) args = ap.parse_args() with zipfile.ZipFile(args.out[0], "w", zipfile.ZIP_STORED) as zf: zf.writestr("manifest_zero", '''PKG-INFO\09b3ed8f2b81095a13064402e930565f083346e9a README\080b6e76643dcb44d4bc729e932fc464b3e36dbe3 hg\0b6444347c629cc058d478023905cfb83b7f5bb9d mercurial/__init__.py\0b80de5d138758541c5f05265ad144ab9fa86d1db mercurial/byterange.py\017f5a9fbd99622f31a392c33ac1e903925dc80ed mercurial/fancyopts.py\0b6f52e23e356748c5039313d8b639cda16bf67ba mercurial/hg.py\023cc12f225f1b42f32dc0d897a4f95a38ddc8f4a mercurial/mdiff.py\0a05f65c44bfbeec6a42336cd2ff0b30217899ca3 mercurial/revlog.py\0217bc3fde6d82c0210cf56aeae11d05a03f35b2b mercurial/transaction.py\09d180df101dc14ce3dd582fd998b36c98b3e39aa notes.txt\0703afcec5edb749cf5cec67831f554d6da13f2fb setup.py\0ccf3f6daf0f13101ca73631f7a1769e328b472c9 tkmerge\03c922edb43a9c143682f7bc7b00f98b3c756ebe7 ''') zf.writestr("badmanifest_shorthashes", "narf\0aa\nnarf2\0aaa\n") zf.writestr("badmanifest_nonull", "narf\0cccccccccccccccccccccccccccccccccccccccc\n" "narf2aaaaaaaaaaaaaaaaaaaa\n")