Mercurial > hg
view doc/runrst @ 25237:7504a7325e4c
localrepo: extract stream clone application into reusable function
The existing stream_in method assumes a streaming clone is applied via
the wire protocol. Previous patches have enabled streaming clone data to
be produced and consumed outside the context of the wire protocol.
However, the consuming part was incomplete because it didn't deal with
things like updating the branch caches or writing out a requirements
file.
This patch finishes the separation of stream clone handling from the
wire protocol. After this patch, it is possible to consume stream clones
from arbitrary sources, including files. Mozilla plans to leverage this
to serve pre-generated stream clone files to consumers, drastically
reducing the wall and CPU time required to clone large repositories.
This will enable clones to be nearly as fast as `tar`.
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Thu, 21 May 2015 10:41:06 -0700 |
parents | 1ae824142c01 |
children | 63eae465095e |
line wrap: on
line source
#!/usr/bin/env python # # runrst - register custom roles and run correct writer # # Copyright 2010 Matt Mackall <mpm@selenic.com> and others # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. """usage: %s WRITER args... where WRITER is the name of a Docutils writer such as 'html' or 'manpage' """ import sys try: from docutils.parsers.rst import roles from docutils.core import publish_cmdline from docutils import nodes, utils except ImportError: sys.stderr.write("abort: couldn't generate documentation: docutils " "module is missing\n") sys.stderr.write("please install python-docutils or see " "http://docutils.sourceforge.net/\n") sys.exit(-1) def role_hg(name, rawtext, text, lineno, inliner, options={}, content=[]): text = "hg " + utils.unescape(text) linktext = nodes.literal(rawtext, text) parts = text.split() cmd, args = parts[1], parts[2:] if cmd == 'help' and args: cmd = args[0] # link to 'dates' for 'hg help dates' node = nodes.reference(rawtext, '', linktext, refuri="hg.1.html#%s" % cmd) return [node], [] roles.register_local_role("hg", role_hg) if __name__ == "__main__": if len(sys.argv) < 2: sys.stderr.write(__doc__ % sys.argv[0]) sys.exit(1) writer = sys.argv[1] del sys.argv[1] publish_cmdline(writer_name=writer)