Mercurial > hg
annotate doc/runrst @ 20768:57d0c8c3b947 stable
qnew: save manually edited commit message into ".hg/last-message.txt"
Before this patch, manually edited commit message for "hg qnew -e"
isn't saved into ".hg/last-message.txt" until it is saved by
"localrepository.savecommitmessage()" in "localrepository.commit()".
This may lose such commit message, if unexpected exception is raised.
This patch saves manually edited commit message for "hg qnew -e" into
".hg/last-message.txt" just after user editing. This patch doesn't
save the message specified by -m/-l options as same as other commands.
This is the simplest implementation to fix on stable. Editing and
saving commit message should be centralized into the framework of
"localrepository.commit()" with "editor" argument in the future.
This patch uses repository wrapping class for exception raising before
saving commit message in "localrepository.commit()" easily and
certainly, because such exception requires corner case condition.
author | FUJIWARA Katsunori <foozy@lares.dti.ne.jp> |
---|---|
date | Wed, 19 Mar 2014 01:07:41 +0900 |
parents | 1ae824142c01 |
children | 63eae465095e |
rev | line source |
---|---|
10971
cbe400a8e217
doc: add generic frontend to rst2man and rst2html
Martin Geisler <mg@aragost.com>
parents:
diff
changeset
|
1 #!/usr/bin/env python |
cbe400a8e217
doc: add generic frontend to rst2man and rst2html
Martin Geisler <mg@aragost.com>
parents:
diff
changeset
|
2 # |
cbe400a8e217
doc: add generic frontend to rst2man and rst2html
Martin Geisler <mg@aragost.com>
parents:
diff
changeset
|
3 # runrst - register custom roles and run correct writer |
cbe400a8e217
doc: add generic frontend to rst2man and rst2html
Martin Geisler <mg@aragost.com>
parents:
diff
changeset
|
4 # |
cbe400a8e217
doc: add generic frontend to rst2man and rst2html
Martin Geisler <mg@aragost.com>
parents:
diff
changeset
|
5 # Copyright 2010 Matt Mackall <mpm@selenic.com> and others |
cbe400a8e217
doc: add generic frontend to rst2man and rst2html
Martin Geisler <mg@aragost.com>
parents:
diff
changeset
|
6 # |
cbe400a8e217
doc: add generic frontend to rst2man and rst2html
Martin Geisler <mg@aragost.com>
parents:
diff
changeset
|
7 # This software may be used and distributed according to the terms of the |
cbe400a8e217
doc: add generic frontend to rst2man and rst2html
Martin Geisler <mg@aragost.com>
parents:
diff
changeset
|
8 # GNU General Public License version 2 or any later version. |
cbe400a8e217
doc: add generic frontend to rst2man and rst2html
Martin Geisler <mg@aragost.com>
parents:
diff
changeset
|
9 |
cbe400a8e217
doc: add generic frontend to rst2man and rst2html
Martin Geisler <mg@aragost.com>
parents:
diff
changeset
|
10 """usage: %s WRITER args... |
cbe400a8e217
doc: add generic frontend to rst2man and rst2html
Martin Geisler <mg@aragost.com>
parents:
diff
changeset
|
11 |
cbe400a8e217
doc: add generic frontend to rst2man and rst2html
Martin Geisler <mg@aragost.com>
parents:
diff
changeset
|
12 where WRITER is the name of a Docutils writer such as 'html' or 'manpage' |
cbe400a8e217
doc: add generic frontend to rst2man and rst2html
Martin Geisler <mg@aragost.com>
parents:
diff
changeset
|
13 """ |
cbe400a8e217
doc: add generic frontend to rst2man and rst2html
Martin Geisler <mg@aragost.com>
parents:
diff
changeset
|
14 |
cbe400a8e217
doc: add generic frontend to rst2man and rst2html
Martin Geisler <mg@aragost.com>
parents:
diff
changeset
|
15 import sys |
11707
13d79a7bf5b7
runrst: try to be more helpful if docutils is not installed
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10974
diff
changeset
|
16 try: |
13d79a7bf5b7
runrst: try to be more helpful if docutils is not installed
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10974
diff
changeset
|
17 from docutils.parsers.rst import roles |
13d79a7bf5b7
runrst: try to be more helpful if docutils is not installed
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10974
diff
changeset
|
18 from docutils.core import publish_cmdline |
13d79a7bf5b7
runrst: try to be more helpful if docutils is not installed
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10974
diff
changeset
|
19 from docutils import nodes, utils |
13d79a7bf5b7
runrst: try to be more helpful if docutils is not installed
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10974
diff
changeset
|
20 except ImportError: |
13d79a7bf5b7
runrst: try to be more helpful if docutils is not installed
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10974
diff
changeset
|
21 sys.stderr.write("abort: couldn't generate documentation: docutils " |
13d79a7bf5b7
runrst: try to be more helpful if docutils is not installed
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10974
diff
changeset
|
22 "module is missing\n") |
15314
1ae824142c01
runrst: improve error message when Docutils is missing
Martin Geisler <mg@aragost.com>
parents:
11707
diff
changeset
|
23 sys.stderr.write("please install python-docutils or see " |
1ae824142c01
runrst: improve error message when Docutils is missing
Martin Geisler <mg@aragost.com>
parents:
11707
diff
changeset
|
24 "http://docutils.sourceforge.net/\n") |
11707
13d79a7bf5b7
runrst: try to be more helpful if docutils is not installed
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10974
diff
changeset
|
25 sys.exit(-1) |
10972
0a2c6948f5f4
doc, minirst: support hg interpreted text role
Martin Geisler <mg@aragost.com>
parents:
10971
diff
changeset
|
26 |
0a2c6948f5f4
doc, minirst: support hg interpreted text role
Martin Geisler <mg@aragost.com>
parents:
10971
diff
changeset
|
27 def role_hg(name, rawtext, text, lineno, inliner, |
0a2c6948f5f4
doc, minirst: support hg interpreted text role
Martin Geisler <mg@aragost.com>
parents:
10971
diff
changeset
|
28 options={}, content=[]): |
10974
854ac04d712c
doc: make links for hg role
Martin Geisler <mg@aragost.com>
parents:
10972
diff
changeset
|
29 text = "hg " + utils.unescape(text) |
854ac04d712c
doc: make links for hg role
Martin Geisler <mg@aragost.com>
parents:
10972
diff
changeset
|
30 linktext = nodes.literal(rawtext, text) |
854ac04d712c
doc: make links for hg role
Martin Geisler <mg@aragost.com>
parents:
10972
diff
changeset
|
31 parts = text.split() |
854ac04d712c
doc: make links for hg role
Martin Geisler <mg@aragost.com>
parents:
10972
diff
changeset
|
32 cmd, args = parts[1], parts[2:] |
854ac04d712c
doc: make links for hg role
Martin Geisler <mg@aragost.com>
parents:
10972
diff
changeset
|
33 if cmd == 'help' and args: |
854ac04d712c
doc: make links for hg role
Martin Geisler <mg@aragost.com>
parents:
10972
diff
changeset
|
34 cmd = args[0] # link to 'dates' for 'hg help dates' |
854ac04d712c
doc: make links for hg role
Martin Geisler <mg@aragost.com>
parents:
10972
diff
changeset
|
35 node = nodes.reference(rawtext, '', linktext, |
854ac04d712c
doc: make links for hg role
Martin Geisler <mg@aragost.com>
parents:
10972
diff
changeset
|
36 refuri="hg.1.html#%s" % cmd) |
10972
0a2c6948f5f4
doc, minirst: support hg interpreted text role
Martin Geisler <mg@aragost.com>
parents:
10971
diff
changeset
|
37 return [node], [] |
0a2c6948f5f4
doc, minirst: support hg interpreted text role
Martin Geisler <mg@aragost.com>
parents:
10971
diff
changeset
|
38 |
0a2c6948f5f4
doc, minirst: support hg interpreted text role
Martin Geisler <mg@aragost.com>
parents:
10971
diff
changeset
|
39 roles.register_local_role("hg", role_hg) |
10971
cbe400a8e217
doc: add generic frontend to rst2man and rst2html
Martin Geisler <mg@aragost.com>
parents:
diff
changeset
|
40 |
cbe400a8e217
doc: add generic frontend to rst2man and rst2html
Martin Geisler <mg@aragost.com>
parents:
diff
changeset
|
41 if __name__ == "__main__": |
cbe400a8e217
doc: add generic frontend to rst2man and rst2html
Martin Geisler <mg@aragost.com>
parents:
diff
changeset
|
42 if len(sys.argv) < 2: |
cbe400a8e217
doc: add generic frontend to rst2man and rst2html
Martin Geisler <mg@aragost.com>
parents:
diff
changeset
|
43 sys.stderr.write(__doc__ % sys.argv[0]) |
cbe400a8e217
doc: add generic frontend to rst2man and rst2html
Martin Geisler <mg@aragost.com>
parents:
diff
changeset
|
44 sys.exit(1) |
cbe400a8e217
doc: add generic frontend to rst2man and rst2html
Martin Geisler <mg@aragost.com>
parents:
diff
changeset
|
45 |
cbe400a8e217
doc: add generic frontend to rst2man and rst2html
Martin Geisler <mg@aragost.com>
parents:
diff
changeset
|
46 writer = sys.argv[1] |
cbe400a8e217
doc: add generic frontend to rst2man and rst2html
Martin Geisler <mg@aragost.com>
parents:
diff
changeset
|
47 del sys.argv[1] |
cbe400a8e217
doc: add generic frontend to rst2man and rst2html
Martin Geisler <mg@aragost.com>
parents:
diff
changeset
|
48 |
cbe400a8e217
doc: add generic frontend to rst2man and rst2html
Martin Geisler <mg@aragost.com>
parents:
diff
changeset
|
49 publish_cmdline(writer_name=writer) |