Mercurial > hg
annotate doc/runrst @ 18510:f254ab6207ae stable
subrepo: use sharepath if available when locating the source repo
This is an alternative fix for issue3518, enabling sharing of repositories with
subrepos, without unconditionally setting the default path in the resulting
repo's hgrc file. Better test coverage is added here, but won't prove this code
is working until fd903f89e42b is backed out.
The problem with the original fix is, if a default path is not available to be
copied over from the share source, the default path on the resulting repo is set
to the source location. Since that's where the actual repository is stored, the
path is essentially self-referential, so push, pull, incoming and outgoing
effectively operate on itself. While incoming and outgoing make it look like
nothing was changed, push currently hangs (see issue3657). In this case where
there is not a real default path, these operations should abort with
"default(-push) not found", like the source repo would. Note this problem with
the original fix affected repos without subrepos too.
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Tue, 27 Nov 2012 20:56:27 -0500 |
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) |