##// END OF EJS Templates
qpush --move: move the right patch even with comment lines...
qpush --move: move the right patch even with comment lines 88fc876a4833 caused that we find the index of the moving patch in self.series but look it up in self.full_series. The difference between these is that full_series also contains comment lines, and we thus moved the wrong patch. Use back self.full_series to find the moving patch, but take care of striping the patch guard markers before comparing the patch name. Test cases have been added for comments and empty lines in self.full_series, and for the case of guarded patches. Original patch contributed by Mads Kiilerich <mads@kiilerich.com>

File last commit:

r11570:2d88369a default
r11715:4f9dfb54 stable
Show More
gendoc.py
119 lines | 3.3 KiB | text/x-python | PythonLexer
Martin Geisler
gendoc: do not wrap encoded string...
r9484 import os, sys
Benoit Boissinot
generate hg manpage from commands.py docstring...
r1814 # import from the live mercurial repo
sys.path.insert(0, "..")
Cédric Duval
gendoc: fall back to pure modules if C extensions are not available (issue1711)
r9130 # fall back to pure modules if required C extensions are not available
sys.path.append(os.path.join('..', 'mercurial', 'pure'))
Matt Mackall
gendoc: use demandimport
r5209 from mercurial import demandimport; demandimport.enable()
Martin Geisler
test-gendoc: add tests for all languages...
r9485 from mercurial import encoding
Benoit Boissinot
generate hg manpage from commands.py docstring...
r1814 from mercurial.commands import table, globalopts
Cédric Duval
gendoc: don't translate topic strings twice (issue1760)
r9240 from mercurial.i18n import _
Matt Mackall
Generate docs for help topics
r3797 from mercurial.help import helptable
Benoit Boissinot
generate hg manpage from commands.py docstring...
r1814
def get_desc(docstr):
if not docstr:
return "", ""
# sanitize
docstr = docstr.strip("\n")
docstr = docstr.rstrip()
shortdesc = docstr.splitlines()[0].strip()
i = docstr.find("\n")
if i != -1:
Matt Mackall
many, many trivial check-code fixups
r10282 desc = docstr[i + 2:]
Benoit Boissinot
generate hg manpage from commands.py docstring...
r1814 else:
desc = " %s" % shortdesc
return (shortdesc, desc)
def get_opts(opts):
FUJIWARA Katsunori
help: show value requirement and multiple occurrence of options...
r11321 for opt in opts:
if len(opt) == 5:
shortopt, longopt, default, desc, optlabel = opt
else:
shortopt, longopt, default, desc = opt
Benoit Boissinot
generate hg manpage from commands.py docstring...
r1814 allopts = []
if shortopt:
allopts.append("-%s" % shortopt)
if longopt:
allopts.append("--%s" % longopt)
desc += default and _(" (default: %s)") % default or ""
yield(", ".join(allopts), desc)
def get_cmd(cmd):
d = {}
attr = table[cmd]
cmds = cmd.lstrip("^").split("|")
d['cmd'] = cmds[0]
d['aliases'] = cmd.split("|")[1:]
d['desc'] = get_desc(attr[0].__doc__)
d['opts'] = list(get_opts(attr[1]))
Matt Mackall
doc: handle shortened command synopses
r7376
s = 'hg ' + cmds[0]
if len(attr) > 2:
if not attr[2].startswith('hg'):
Ori Avtalion
gendoc: add missing space in command synopsis
r8546 s += ' ' + attr[2]
Matt Mackall
doc: handle shortened command synopses
r7376 else:
s = attr[2]
Martin Geisler
gendoc: fix synopsis...
r9622 d['synopsis'] = s.strip()
Matt Mackall
doc: handle shortened command synopses
r7376
Benoit Boissinot
generate hg manpage from commands.py docstring...
r1814 return d
def show_doc(ui):
Martin Geisler
gendoc: rename underlined/bold to section/subsection
r9296 def section(s):
Martin Geisler
test-gendoc: add tests for all languages...
r9485 ui.write("%s\n%s\n\n" % (s, "-" * encoding.colwidth(s)))
Martin Geisler
gendoc: rename underlined/bold to section/subsection
r9296 def subsection(s):
Martin Geisler
test-gendoc: add tests for all languages...
r9485 ui.write("%s\n%s\n\n" % (s, '"' * encoding.colwidth(s)))
Benoit Boissinot
generate hg manpage from commands.py docstring...
r1814
# print options
Martin Geisler
doc: use titlecase in man page section titles
r9792 section(_("Options"))
Benoit Boissinot
generate hg manpage from commands.py docstring...
r1814 for optstr, desc in get_opts(globalopts):
Martin Geisler
doc: use reStructuredText for man and HTML pages...
r9158 ui.write("%s\n %s\n\n" % (optstr, desc))
Benoit Boissinot
generate hg manpage from commands.py docstring...
r1814
# print cmds
Martin Geisler
doc: use titlecase in man page section titles
r9792 section(_("Commands"))
Benoit Boissinot
generate hg manpage from commands.py docstring...
r1814 h = {}
for c, attr in table.items():
Christian Ebert
gendoc: fix indentation
r6488 f = c.split("|")[0]
f = f.lstrip("^")
h[f] = c
Benoit Boissinot
generate hg manpage from commands.py docstring...
r1814 cmds = h.keys()
cmds.sort()
for f in cmds:
Matt Mackall
many, many trivial check-code fixups
r10282 if f.startswith("debug"):
continue
Christian Ebert
gendoc: fix indentation
r6488 d = get_cmd(h[f])
# synopsis
Martin Geisler
doc: use reStructuredText for man and HTML pages...
r9158 ui.write(".. _%s:\n\n" % d['cmd'])
ui.write("``%s``\n" % d['synopsis'].replace("hg ","", 1))
Christian Ebert
gendoc: fix indentation
r6488 # description
ui.write("%s\n\n" % d['desc'][1])
# options
opt_output = list(d['opts'])
if opt_output:
opts_len = max([len(line[0]) for line in opt_output])
Martin Geisler
doc: use reStructuredText for man and HTML pages...
r9158 ui.write(_(" options:\n\n"))
Christian Ebert
gendoc: fix indentation
r6488 for optstr, desc in opt_output:
if desc:
s = "%-*s %s" % (opts_len, optstr, desc)
else:
s = optstr
Martin Geisler
gendoc: do not wrap encoded string...
r9484 ui.write(" %s\n" % s)
Christian Ebert
gendoc: fix indentation
r6488 ui.write("\n")
# aliases
if d['aliases']:
ui.write(_(" aliases: %s\n\n") % " ".join(d['aliases']))
Benoit Boissinot
generate hg manpage from commands.py docstring...
r1814
Matt Mackall
Generate docs for help topics
r3797 # print topics
Martin Geisler
gendoc: rename underlined/bold to section/subsection
r9296 for names, sec, doc in helptable:
Martin Geisler
gendoc: make anchors for help topic names
r9297 for name in names:
ui.write(".. _%s:\n" % name)
ui.write("\n")
Martin Geisler
doc: use titlecase in man page section titles
r9792 section(sec)
Nicolas Dumazet
gendoc: remove callable usage (check-code)
r11642 if hasattr(doc, '__call__'):
Matt Mackall
Generate docs for help topics
r3797 doc = doc()
Cédric Duval
gendoc: fix localization of help topic...
r9021 ui.write(doc)
Matt Mackall
Generate docs for help topics
r3797 ui.write("\n")
Benoit Boissinot
generate hg manpage from commands.py docstring...
r1814 if __name__ == "__main__":
show_doc(sys.stdout)