##// END OF EJS Templates
evolution: stop wrongly flagging unrelated part of a split as divergent...
evolution: stop wrongly flagging unrelated part of a split as divergent Before this change, divergence introduced by successors of a split would "spill" to other unrelated successors of the split that were not ambiguous. This small changes fixes it. Thanks goes to Manuel Jacobs for the discussion leading to this realization that a new simple and correct definition could be found.

File last commit:

r52914:2a875530 default
r53029:e68fe567 stable
Show More
runrst
68 lines | 2.0 KiB | text/plain | TextLexer
#!/usr/bin/env python3
#
# runrst - register custom roles and run correct writer
#
# Copyright 2010 Olivia Mackall <olivia@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:
import docutils.core as core
import docutils.nodes as nodes
import docutils.utils as utils
import docutils.parsers.rst.roles as roles
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=None, content=None):
text = "hg " + utils.unescape(text)
linktext = nodes.literal(rawtext, text)
parts = text.split()
cmd, args = parts[1], parts[2:]
refuri = "hg.1.html#%s" % cmd
if cmd == 'help' and args:
if args[0] == 'config':
# :hg:`help config`
refuri = "hgrc.5.html"
elif args[0].startswith('config.'):
# :hg:`help config.SECTION...`
refuri = "hgrc.5.html#%s" % args[0].split('.', 2)[1]
elif len(args) >= 2 and args[0] == '-c':
# :hg:`help -c COMMAND ...` is equivalent to :hg:`COMMAND`
# (mainly for :hg:`help -c config`)
refuri = "hg.1.html#%s" % args[1]
else:
refuri = "hg.1.html#%s" % args[0]
node = nodes.reference(rawtext, '', linktext, refuri=refuri)
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]
core.publish_cmdline(writer_name=writer)