##// END OF EJS Templates
contrib: fix up output in check-config.py to use strs to avoid b prefixes...
Augie Fackler -
r40295:5519697b default
parent child Browse files
Show More
@@ -1,142 +1,159 b''
1 #!/usr/bin/env python
1 #!/usr/bin/env python
2 #
2 #
3 # check-config - a config flag documentation checker for Mercurial
3 # check-config - a config flag documentation checker for Mercurial
4 #
4 #
5 # Copyright 2015 Matt Mackall <mpm@selenic.com>
5 # Copyright 2015 Matt Mackall <mpm@selenic.com>
6 #
6 #
7 # This software may be used and distributed according to the terms of the
7 # This software may be used and distributed according to the terms of the
8 # GNU General Public License version 2 or any later version.
8 # GNU General Public License version 2 or any later version.
9
9
10 from __future__ import absolute_import, print_function
10 from __future__ import absolute_import, print_function
11 import re
11 import re
12 import sys
12 import sys
13
13
14 foundopts = {}
14 foundopts = {}
15 documented = {}
15 documented = {}
16 allowinconsistent = set()
16 allowinconsistent = set()
17
17
18 configre = re.compile(br'''
18 configre = re.compile(br'''
19 # Function call
19 # Function call
20 ui\.config(?P<ctype>|int|bool|list)\(
20 ui\.config(?P<ctype>|int|bool|list)\(
21 # First argument.
21 # First argument.
22 ['"](?P<section>\S+)['"],\s*
22 ['"](?P<section>\S+)['"],\s*
23 # Second argument
23 # Second argument
24 ['"](?P<option>\S+)['"](,\s+
24 ['"](?P<option>\S+)['"](,\s+
25 (?:default=)?(?P<default>\S+?))?
25 (?:default=)?(?P<default>\S+?))?
26 \)''', re.VERBOSE | re.MULTILINE)
26 \)''', re.VERBOSE | re.MULTILINE)
27
27
28 configwithre = re.compile(b'''
28 configwithre = re.compile(b'''
29 ui\.config(?P<ctype>with)\(
29 ui\.config(?P<ctype>with)\(
30 # First argument is callback function. This doesn't parse robustly
30 # First argument is callback function. This doesn't parse robustly
31 # if it is e.g. a function call.
31 # if it is e.g. a function call.
32 [^,]+,\s*
32 [^,]+,\s*
33 ['"](?P<section>\S+)['"],\s*
33 ['"](?P<section>\S+)['"],\s*
34 ['"](?P<option>\S+)['"](,\s+
34 ['"](?P<option>\S+)['"](,\s+
35 (?:default=)?(?P<default>\S+?))?
35 (?:default=)?(?P<default>\S+?))?
36 \)''', re.VERBOSE | re.MULTILINE)
36 \)''', re.VERBOSE | re.MULTILINE)
37
37
38 configpartialre = (br"""ui\.config""")
38 configpartialre = (br"""ui\.config""")
39
39
40 ignorere = re.compile(br'''
40 ignorere = re.compile(br'''
41 \#\s(?P<reason>internal|experimental|deprecated|developer|inconsistent)\s
41 \#\s(?P<reason>internal|experimental|deprecated|developer|inconsistent)\s
42 config:\s(?P<config>\S+\.\S+)$
42 config:\s(?P<config>\S+\.\S+)$
43 ''', re.VERBOSE | re.MULTILINE)
43 ''', re.VERBOSE | re.MULTILINE)
44
44
45 if sys.version_info[0] > 2:
46 def mkstr(b):
47 if isinstance(b, str):
48 return b
49 return b.decode('utf8')
50 else:
51 mkstr = lambda x: x
52
45 def main(args):
53 def main(args):
46 for f in args:
54 for f in args:
47 sect = b''
55 sect = b''
48 prevname = b''
56 prevname = b''
49 confsect = b''
57 confsect = b''
50 carryover = b''
58 carryover = b''
51 linenum = 0
59 linenum = 0
52 for l in open(f, 'rb'):
60 for l in open(f, 'rb'):
53 linenum += 1
61 linenum += 1
54
62
55 # check topic-like bits
63 # check topic-like bits
56 m = re.match(b'\s*``(\S+)``', l)
64 m = re.match(b'\s*``(\S+)``', l)
57 if m:
65 if m:
58 prevname = m.group(1)
66 prevname = m.group(1)
59 if re.match(b'^\s*-+$', l):
67 if re.match(b'^\s*-+$', l):
60 sect = prevname
68 sect = prevname
61 prevname = b''
69 prevname = b''
62
70
63 if sect and prevname:
71 if sect and prevname:
64 name = sect + b'.' + prevname
72 name = sect + b'.' + prevname
65 documented[name] = 1
73 documented[name] = 1
66
74
67 # check docstring bits
75 # check docstring bits
68 m = re.match(br'^\s+\[(\S+)\]', l)
76 m = re.match(br'^\s+\[(\S+)\]', l)
69 if m:
77 if m:
70 confsect = m.group(1)
78 confsect = m.group(1)
71 continue
79 continue
72 m = re.match(br'^\s+(?:#\s*)?(\S+) = ', l)
80 m = re.match(br'^\s+(?:#\s*)?(\S+) = ', l)
73 if m:
81 if m:
74 name = confsect + b'.' + m.group(1)
82 name = confsect + b'.' + m.group(1)
75 documented[name] = 1
83 documented[name] = 1
76
84
77 # like the bugzilla extension
85 # like the bugzilla extension
78 m = re.match(br'^\s*(\S+\.\S+)$', l)
86 m = re.match(br'^\s*(\S+\.\S+)$', l)
79 if m:
87 if m:
80 documented[m.group(1)] = 1
88 documented[m.group(1)] = 1
81
89
82 # like convert
90 # like convert
83 m = re.match(br'^\s*:(\S+\.\S+):\s+', l)
91 m = re.match(br'^\s*:(\S+\.\S+):\s+', l)
84 if m:
92 if m:
85 documented[m.group(1)] = 1
93 documented[m.group(1)] = 1
86
94
87 # quoted in help or docstrings
95 # quoted in help or docstrings
88 m = re.match(br'.*?``(\S+\.\S+)``', l)
96 m = re.match(br'.*?``(\S+\.\S+)``', l)
89 if m:
97 if m:
90 documented[m.group(1)] = 1
98 documented[m.group(1)] = 1
91
99
92 # look for ignore markers
100 # look for ignore markers
93 m = ignorere.search(l)
101 m = ignorere.search(l)
94 if m:
102 if m:
95 if m.group('reason') == 'inconsistent':
103 if m.group('reason') == b'inconsistent':
96 allowinconsistent.add(m.group('config'))
104 allowinconsistent.add(m.group('config'))
97 else:
105 else:
98 documented[m.group('config')] = 1
106 documented[m.group('config')] = 1
99
107
100 # look for code-like bits
108 # look for code-like bits
101 line = carryover + l
109 line = carryover + l
102 m = configre.search(line) or configwithre.search(line)
110 m = configre.search(line) or configwithre.search(line)
103 if m:
111 if m:
104 ctype = m.group('ctype')
112 ctype = m.group('ctype')
105 if not ctype:
113 if not ctype:
106 ctype = 'str'
114 ctype = 'str'
107 name = m.group('section') + b"." + m.group('option')
115 name = m.group('section') + b"." + m.group('option')
108 default = m.group('default')
116 default = m.group('default')
109 if default in (None, 'False', 'None', '0', '[]', '""', "''"):
117 if default in (
118 None, b'False', b'None', b'0', b'[]', b'""', b"''"):
110 default = b''
119 default = b''
111 if re.match(b'[a-z.]+$', default):
120 if re.match(b'[a-z.]+$', default):
112 default = b'<variable>'
121 default = b'<variable>'
113 if (name in foundopts and (ctype, default) != foundopts[name]
122 if (name in foundopts and (ctype, default) != foundopts[name]
114 and name not in allowinconsistent):
123 and name not in allowinconsistent):
115 print(l.rstrip())
124 print(mkstr(l.rstrip()))
116 print("conflict on %s: %r != %r" % (name, (ctype, default),
125 fctype, fdefault = foundopts[name]
117 foundopts[name]))
126 print("conflict on %s: %r != %r" % (
118 print("at %s:%d:" % (f, linenum))
127 mkstr(name),
128 (mkstr(ctype), mkstr(default)),
129 (mkstr(fctype), mkstr(fdefault))))
130 print("at %s:%d:" % (mkstr(f), linenum))
119 foundopts[name] = (ctype, default)
131 foundopts[name] = (ctype, default)
120 carryover = b''
132 carryover = b''
121 else:
133 else:
122 m = re.search(configpartialre, line)
134 m = re.search(configpartialre, line)
123 if m:
135 if m:
124 carryover = line
136 carryover = line
125 else:
137 else:
126 carryover = b''
138 carryover = b''
127
139
128 for name in sorted(foundopts):
140 for name in sorted(foundopts):
129 if name not in documented:
141 if name not in documented:
130 if not (name.startswith(b"devel.") or
142 if not (name.startswith(b"devel.") or
131 name.startswith(b"experimental.") or
143 name.startswith(b"experimental.") or
132 name.startswith(b"debug.")):
144 name.startswith(b"debug.")):
133 ctype, default = foundopts[name]
145 ctype, default = foundopts[name]
134 if default:
146 if default:
147 if isinstance(default, bytes):
148 default = mkstr(default)
135 default = ' [%s]' % default
149 default = ' [%s]' % default
136 print("undocumented: %s (%s)%s" % (name, ctype, default))
150 elif isinstance(default, bytes):
151 default = mkstr(default)
152 print("undocumented: %s (%s)%s" % (
153 mkstr(name), mkstr(ctype), default))
137
154
138 if __name__ == "__main__":
155 if __name__ == "__main__":
139 if len(sys.argv) > 1:
156 if len(sys.argv) > 1:
140 sys.exit(main(sys.argv[1:]))
157 sys.exit(main(sys.argv[1:]))
141 else:
158 else:
142 sys.exit(main([l.rstrip() for l in sys.stdin]))
159 sys.exit(main([l.rstrip() for l in sys.stdin]))
@@ -1,624 +1,625 b''
1 test-abort-checkin.t
1 test-abort-checkin.t
2 test-absorb-filefixupstate.py
2 test-absorb-filefixupstate.py
3 test-absorb-phase.t
3 test-absorb-phase.t
4 test-absorb-rename.t
4 test-absorb-rename.t
5 test-absorb-strip.t
5 test-absorb-strip.t
6 test-absorb.t
6 test-absorb.t
7 test-add.t
7 test-add.t
8 test-addremove-similar.t
8 test-addremove-similar.t
9 test-addremove.t
9 test-addremove.t
10 test-alias.t
10 test-alias.t
11 test-amend-subrepo.t
11 test-amend-subrepo.t
12 test-amend.t
12 test-amend.t
13 test-ancestor.py
13 test-ancestor.py
14 test-annotate.py
14 test-annotate.py
15 test-annotate.t
15 test-annotate.t
16 test-archive-symlinks.t
16 test-archive-symlinks.t
17 test-archive.t
17 test-archive.t
18 test-atomictempfile.py
18 test-atomictempfile.py
19 test-audit-path.t
19 test-audit-path.t
20 test-audit-subrepo.t
20 test-audit-subrepo.t
21 test-automv.t
21 test-automv.t
22 test-backout.t
22 test-backout.t
23 test-backwards-remove.t
23 test-backwards-remove.t
24 test-bad-extension.t
24 test-bad-extension.t
25 test-bad-pull.t
25 test-bad-pull.t
26 test-basic.t
26 test-basic.t
27 test-bdiff.py
27 test-bdiff.py
28 test-bheads.t
28 test-bheads.t
29 test-bisect.t
29 test-bisect.t
30 test-bisect2.t
30 test-bisect2.t
31 test-bisect3.t
31 test-bisect3.t
32 test-blackbox.t
32 test-blackbox.t
33 test-bookmarks-current.t
33 test-bookmarks-current.t
34 test-bookmarks-merge.t
34 test-bookmarks-merge.t
35 test-bookmarks-pushpull.t
35 test-bookmarks-pushpull.t
36 test-bookmarks-rebase.t
36 test-bookmarks-rebase.t
37 test-bookmarks-strip.t
37 test-bookmarks-strip.t
38 test-bookmarks.t
38 test-bookmarks.t
39 test-branch-change.t
39 test-branch-change.t
40 test-branch-option.t
40 test-branch-option.t
41 test-branch-tag-confict.t
41 test-branch-tag-confict.t
42 test-branches.t
42 test-branches.t
43 test-bundle-phases.t
43 test-bundle-phases.t
44 test-bundle-r.t
44 test-bundle-r.t
45 test-bundle-type.t
45 test-bundle-type.t
46 test-bundle-vs-outgoing.t
46 test-bundle-vs-outgoing.t
47 test-bundle.t
47 test-bundle.t
48 test-bundle2-exchange.t
48 test-bundle2-exchange.t
49 test-bundle2-format.t
49 test-bundle2-format.t
50 test-bundle2-multiple-changegroups.t
50 test-bundle2-multiple-changegroups.t
51 test-bundle2-pushback.t
51 test-bundle2-pushback.t
52 test-bundle2-remote-changegroup.t
52 test-bundle2-remote-changegroup.t
53 test-cache-abuse.t
53 test-cache-abuse.t
54 test-cappedreader.py
54 test-cappedreader.py
55 test-casecollision.t
55 test-casecollision.t
56 test-cat.t
56 test-cat.t
57 test-cbor.py
57 test-cbor.py
58 test-censor.t
58 test-censor.t
59 test-changelog-exec.t
59 test-changelog-exec.t
60 test-check-code.t
60 test-check-code.t
61 test-check-commit.t
61 test-check-commit.t
62 test-check-config.py
62 test-check-execute.t
63 test-check-execute.t
63 test-check-interfaces.py
64 test-check-interfaces.py
64 test-check-module-imports.t
65 test-check-module-imports.t
65 test-check-py3-compat.t
66 test-check-py3-compat.t
66 test-check-pyflakes.t
67 test-check-pyflakes.t
67 test-check-pylint.t
68 test-check-pylint.t
68 test-check-shbang.t
69 test-check-shbang.t
69 test-children.t
70 test-children.t
70 test-churn.t
71 test-churn.t
71 test-clone-cgi.t
72 test-clone-cgi.t
72 test-clone-pull-corruption.t
73 test-clone-pull-corruption.t
73 test-clone-r.t
74 test-clone-r.t
74 test-clone-uncompressed.t
75 test-clone-uncompressed.t
75 test-clone-update-order.t
76 test-clone-update-order.t
76 test-clone.t
77 test-clone.t
77 test-clonebundles.t
78 test-clonebundles.t
78 test-close-head.t
79 test-close-head.t
79 test-commit-amend.t
80 test-commit-amend.t
80 test-commit-interactive.t
81 test-commit-interactive.t
81 test-commit-multiple.t
82 test-commit-multiple.t
82 test-commit-unresolved.t
83 test-commit-unresolved.t
83 test-commit.t
84 test-commit.t
84 test-committer.t
85 test-committer.t
85 test-completion.t
86 test-completion.t
86 test-config-env.py
87 test-config-env.py
87 test-config.t
88 test-config.t
88 test-conflict.t
89 test-conflict.t
89 test-confused-revert.t
90 test-confused-revert.t
90 test-context.py
91 test-context.py
91 test-contrib-check-code.t
92 test-contrib-check-code.t
92 test-contrib-check-commit.t
93 test-contrib-check-commit.t
93 test-contrib-dumprevlog.t
94 test-contrib-dumprevlog.t
94 test-contrib-perf.t
95 test-contrib-perf.t
95 test-contrib-relnotes.t
96 test-contrib-relnotes.t
96 test-contrib-testparseutil.t
97 test-contrib-testparseutil.t
97 test-convert-authormap.t
98 test-convert-authormap.t
98 test-convert-clonebranches.t
99 test-convert-clonebranches.t
99 test-convert-cvs-branch.t
100 test-convert-cvs-branch.t
100 test-convert-cvs-detectmerge.t
101 test-convert-cvs-detectmerge.t
101 test-convert-cvs-synthetic.t
102 test-convert-cvs-synthetic.t
102 test-convert-cvs.t
103 test-convert-cvs.t
103 test-convert-cvsnt-mergepoints.t
104 test-convert-cvsnt-mergepoints.t
104 test-convert-datesort.t
105 test-convert-datesort.t
105 test-convert-filemap.t
106 test-convert-filemap.t
106 test-convert-hg-sink.t
107 test-convert-hg-sink.t
107 test-convert-hg-source.t
108 test-convert-hg-source.t
108 test-convert-hg-startrev.t
109 test-convert-hg-startrev.t
109 test-convert-splicemap.t
110 test-convert-splicemap.t
110 test-convert-tagsbranch-topology.t
111 test-convert-tagsbranch-topology.t
111 test-copy-move-merge.t
112 test-copy-move-merge.t
112 test-copy.t
113 test-copy.t
113 test-copytrace-heuristics.t
114 test-copytrace-heuristics.t
114 test-debugbuilddag.t
115 test-debugbuilddag.t
115 test-debugbundle.t
116 test-debugbundle.t
116 test-debugcommands.t
117 test-debugcommands.t
117 test-debugextensions.t
118 test-debugextensions.t
118 test-debugindexdot.t
119 test-debugindexdot.t
119 test-debugrename.t
120 test-debugrename.t
120 test-default-push.t
121 test-default-push.t
121 test-diff-antipatience.t
122 test-diff-antipatience.t
122 test-diff-binary-file.t
123 test-diff-binary-file.t
123 test-diff-change.t
124 test-diff-change.t
124 test-diff-copy-depth.t
125 test-diff-copy-depth.t
125 test-diff-hashes.t
126 test-diff-hashes.t
126 test-diff-ignore-whitespace.t
127 test-diff-ignore-whitespace.t
127 test-diff-indent-heuristic.t
128 test-diff-indent-heuristic.t
128 test-diff-issue2761.t
129 test-diff-issue2761.t
129 test-diff-newlines.t
130 test-diff-newlines.t
130 test-diff-reverse.t
131 test-diff-reverse.t
131 test-diff-subdir.t
132 test-diff-subdir.t
132 test-diff-unified.t
133 test-diff-unified.t
133 test-diff-upgrade.t
134 test-diff-upgrade.t
134 test-diffdir.t
135 test-diffdir.t
135 test-diffstat.t
136 test-diffstat.t
136 test-directaccess.t
137 test-directaccess.t
137 test-dirstate-backup.t
138 test-dirstate-backup.t
138 test-dirstate-nonnormalset.t
139 test-dirstate-nonnormalset.t
139 test-dirstate.t
140 test-dirstate.t
140 test-dispatch.py
141 test-dispatch.py
141 test-doctest.py
142 test-doctest.py
142 test-double-merge.t
143 test-double-merge.t
143 test-drawdag.t
144 test-drawdag.t
144 test-duplicateoptions.py
145 test-duplicateoptions.py
145 test-editor-filename.t
146 test-editor-filename.t
146 test-empty-dir.t
147 test-empty-dir.t
147 test-empty-file.t
148 test-empty-file.t
148 test-empty-group.t
149 test-empty-group.t
149 test-empty.t
150 test-empty.t
150 test-encode.t
151 test-encode.t
151 test-encoding-func.py
152 test-encoding-func.py
152 test-encoding.t
153 test-encoding.t
153 test-eol-add.t
154 test-eol-add.t
154 test-eol-clone.t
155 test-eol-clone.t
155 test-eol-hook.t
156 test-eol-hook.t
156 test-eol-patch.t
157 test-eol-patch.t
157 test-eol-tag.t
158 test-eol-tag.t
158 test-eol-update.t
159 test-eol-update.t
159 test-eol.t
160 test-eol.t
160 test-eolfilename.t
161 test-eolfilename.t
161 test-excessive-merge.t
162 test-excessive-merge.t
162 test-exchange-obsmarkers-case-A1.t
163 test-exchange-obsmarkers-case-A1.t
163 test-exchange-obsmarkers-case-A2.t
164 test-exchange-obsmarkers-case-A2.t
164 test-exchange-obsmarkers-case-A3.t
165 test-exchange-obsmarkers-case-A3.t
165 test-exchange-obsmarkers-case-A4.t
166 test-exchange-obsmarkers-case-A4.t
166 test-exchange-obsmarkers-case-A5.t
167 test-exchange-obsmarkers-case-A5.t
167 test-exchange-obsmarkers-case-A6.t
168 test-exchange-obsmarkers-case-A6.t
168 test-exchange-obsmarkers-case-A7.t
169 test-exchange-obsmarkers-case-A7.t
169 test-exchange-obsmarkers-case-B1.t
170 test-exchange-obsmarkers-case-B1.t
170 test-exchange-obsmarkers-case-B2.t
171 test-exchange-obsmarkers-case-B2.t
171 test-exchange-obsmarkers-case-B3.t
172 test-exchange-obsmarkers-case-B3.t
172 test-exchange-obsmarkers-case-B4.t
173 test-exchange-obsmarkers-case-B4.t
173 test-exchange-obsmarkers-case-B5.t
174 test-exchange-obsmarkers-case-B5.t
174 test-exchange-obsmarkers-case-B6.t
175 test-exchange-obsmarkers-case-B6.t
175 test-exchange-obsmarkers-case-B7.t
176 test-exchange-obsmarkers-case-B7.t
176 test-exchange-obsmarkers-case-C1.t
177 test-exchange-obsmarkers-case-C1.t
177 test-exchange-obsmarkers-case-C2.t
178 test-exchange-obsmarkers-case-C2.t
178 test-exchange-obsmarkers-case-C3.t
179 test-exchange-obsmarkers-case-C3.t
179 test-exchange-obsmarkers-case-C4.t
180 test-exchange-obsmarkers-case-C4.t
180 test-exchange-obsmarkers-case-D1.t
181 test-exchange-obsmarkers-case-D1.t
181 test-exchange-obsmarkers-case-D2.t
182 test-exchange-obsmarkers-case-D2.t
182 test-exchange-obsmarkers-case-D3.t
183 test-exchange-obsmarkers-case-D3.t
183 test-exchange-obsmarkers-case-D4.t
184 test-exchange-obsmarkers-case-D4.t
184 test-execute-bit.t
185 test-execute-bit.t
185 test-export.t
186 test-export.t
186 test-extdata.t
187 test-extdata.t
187 test-extdiff.t
188 test-extdiff.t
188 test-extensions-afterloaded.t
189 test-extensions-afterloaded.t
189 test-extensions-wrapfunction.py
190 test-extensions-wrapfunction.py
190 test-extra-filelog-entry.t
191 test-extra-filelog-entry.t
191 test-fetch.t
192 test-fetch.t
192 test-filebranch.t
193 test-filebranch.t
193 test-filecache.py
194 test-filecache.py
194 test-filelog.py
195 test-filelog.py
195 test-fileset-generated.t
196 test-fileset-generated.t
196 test-fileset.t
197 test-fileset.t
197 test-fix-topology.t
198 test-fix-topology.t
198 test-flags.t
199 test-flags.t
199 test-generaldelta.t
200 test-generaldelta.t
200 test-getbundle.t
201 test-getbundle.t
201 test-git-export.t
202 test-git-export.t
202 test-globalopts.t
203 test-globalopts.t
203 test-glog-beautifygraph.t
204 test-glog-beautifygraph.t
204 test-glog-topological.t
205 test-glog-topological.t
205 test-glog.t
206 test-glog.t
206 test-gpg.t
207 test-gpg.t
207 test-graft.t
208 test-graft.t
208 test-grep.t
209 test-grep.t
209 test-hg-parseurl.py
210 test-hg-parseurl.py
210 test-hghave.t
211 test-hghave.t
211 test-hgignore.t
212 test-hgignore.t
212 test-hgk.t
213 test-hgk.t
213 test-hgrc.t
214 test-hgrc.t
214 test-hgweb-annotate-whitespace.t
215 test-hgweb-annotate-whitespace.t
215 test-hgweb-bundle.t
216 test-hgweb-bundle.t
216 test-hgweb-csp.t
217 test-hgweb-csp.t
217 test-hgweb-descend-empties.t
218 test-hgweb-descend-empties.t
218 test-hgweb-diffs.t
219 test-hgweb-diffs.t
219 test-hgweb-empty.t
220 test-hgweb-empty.t
220 test-hgweb-filelog.t
221 test-hgweb-filelog.t
221 test-hgweb-non-interactive.t
222 test-hgweb-non-interactive.t
222 test-hgweb-raw.t
223 test-hgweb-raw.t
223 test-hgweb-removed.t
224 test-hgweb-removed.t
224 test-hgweb.t
225 test-hgweb.t
225 test-hgwebdir-paths.py
226 test-hgwebdir-paths.py
226 test-hgwebdirsym.t
227 test-hgwebdirsym.t
227 test-histedit-arguments.t
228 test-histedit-arguments.t
228 test-histedit-base.t
229 test-histedit-base.t
229 test-histedit-bookmark-motion.t
230 test-histedit-bookmark-motion.t
230 test-histedit-commute.t
231 test-histedit-commute.t
231 test-histedit-drop.t
232 test-histedit-drop.t
232 test-histedit-edit.t
233 test-histedit-edit.t
233 test-histedit-fold-non-commute.t
234 test-histedit-fold-non-commute.t
234 test-histedit-fold.t
235 test-histedit-fold.t
235 test-histedit-no-backup.t
236 test-histedit-no-backup.t
236 test-histedit-no-change.t
237 test-histedit-no-change.t
237 test-histedit-non-commute-abort.t
238 test-histedit-non-commute-abort.t
238 test-histedit-non-commute.t
239 test-histedit-non-commute.t
239 test-histedit-obsolete.t
240 test-histedit-obsolete.t
240 test-histedit-outgoing.t
241 test-histedit-outgoing.t
241 test-histedit-templates.t
242 test-histedit-templates.t
242 test-http-branchmap.t
243 test-http-branchmap.t
243 test-http-bundle1.t
244 test-http-bundle1.t
244 test-http-clone-r.t
245 test-http-clone-r.t
245 test-http-permissions.t
246 test-http-permissions.t
246 test-http.t
247 test-http.t
247 test-hybridencode.py
248 test-hybridencode.py
248 test-i18n.t
249 test-i18n.t
249 test-identify.t
250 test-identify.t
250 test-impexp-branch.t
251 test-impexp-branch.t
251 test-import-bypass.t
252 test-import-bypass.t
252 test-import-eol.t
253 test-import-eol.t
253 test-import-merge.t
254 test-import-merge.t
254 test-import-unknown.t
255 test-import-unknown.t
255 test-import.t
256 test-import.t
256 test-imports-checker.t
257 test-imports-checker.t
257 test-incoming-outgoing.t
258 test-incoming-outgoing.t
258 test-infinitepush-bundlestore.t
259 test-infinitepush-bundlestore.t
259 test-infinitepush-ci.t
260 test-infinitepush-ci.t
260 test-infinitepush.t
261 test-infinitepush.t
261 test-inherit-mode.t
262 test-inherit-mode.t
262 test-init.t
263 test-init.t
263 test-issue1089.t
264 test-issue1089.t
264 test-issue1102.t
265 test-issue1102.t
265 test-issue1175.t
266 test-issue1175.t
266 test-issue1306.t
267 test-issue1306.t
267 test-issue1438.t
268 test-issue1438.t
268 test-issue1502.t
269 test-issue1502.t
269 test-issue1802.t
270 test-issue1802.t
270 test-issue1877.t
271 test-issue1877.t
271 test-issue1993.t
272 test-issue1993.t
272 test-issue2137.t
273 test-issue2137.t
273 test-issue3084.t
274 test-issue3084.t
274 test-issue4074.t
275 test-issue4074.t
275 test-issue522.t
276 test-issue522.t
276 test-issue586.t
277 test-issue586.t
277 test-issue5979.t
278 test-issue5979.t
278 test-issue612.t
279 test-issue612.t
279 test-issue619.t
280 test-issue619.t
280 test-issue660.t
281 test-issue660.t
281 test-issue672.t
282 test-issue672.t
282 test-issue842.t
283 test-issue842.t
283 test-journal-exists.t
284 test-journal-exists.t
284 test-journal-share.t
285 test-journal-share.t
285 test-journal.t
286 test-journal.t
286 test-known.t
287 test-known.t
287 test-largefiles-cache.t
288 test-largefiles-cache.t
288 test-largefiles-misc.t
289 test-largefiles-misc.t
289 test-largefiles-small-disk.t
290 test-largefiles-small-disk.t
290 test-largefiles-update.t
291 test-largefiles-update.t
291 test-largefiles.t
292 test-largefiles.t
292 test-lfs-largefiles.t
293 test-lfs-largefiles.t
293 test-lfs-pointer.py
294 test-lfs-pointer.py
294 test-linelog.py
295 test-linelog.py
295 test-linerange.py
296 test-linerange.py
296 test-locate.t
297 test-locate.t
297 test-lock-badness.t
298 test-lock-badness.t
298 test-log-linerange.t
299 test-log-linerange.t
299 test-log.t
300 test-log.t
300 test-logexchange.t
301 test-logexchange.t
301 test-lrucachedict.py
302 test-lrucachedict.py
302 test-mactext.t
303 test-mactext.t
303 test-mailmap.t
304 test-mailmap.t
304 test-manifest-merging.t
305 test-manifest-merging.t
305 test-manifest.py
306 test-manifest.py
306 test-manifest.t
307 test-manifest.t
307 test-match.py
308 test-match.py
308 test-mdiff.py
309 test-mdiff.py
309 test-merge-changedelete.t
310 test-merge-changedelete.t
310 test-merge-closedheads.t
311 test-merge-closedheads.t
311 test-merge-commit.t
312 test-merge-commit.t
312 test-merge-criss-cross.t
313 test-merge-criss-cross.t
313 test-merge-default.t
314 test-merge-default.t
314 test-merge-force.t
315 test-merge-force.t
315 test-merge-halt.t
316 test-merge-halt.t
316 test-merge-internal-tools-pattern.t
317 test-merge-internal-tools-pattern.t
317 test-merge-local.t
318 test-merge-local.t
318 test-merge-no-file-change.t
319 test-merge-no-file-change.t
319 test-merge-remove.t
320 test-merge-remove.t
320 test-merge-revert.t
321 test-merge-revert.t
321 test-merge-revert2.t
322 test-merge-revert2.t
322 test-merge-subrepos.t
323 test-merge-subrepos.t
323 test-merge-symlinks.t
324 test-merge-symlinks.t
324 test-merge-tools.t
325 test-merge-tools.t
325 test-merge-types.t
326 test-merge-types.t
326 test-merge1.t
327 test-merge1.t
327 test-merge10.t
328 test-merge10.t
328 test-merge2.t
329 test-merge2.t
329 test-merge4.t
330 test-merge4.t
330 test-merge5.t
331 test-merge5.t
331 test-merge6.t
332 test-merge6.t
332 test-merge7.t
333 test-merge7.t
333 test-merge8.t
334 test-merge8.t
334 test-merge9.t
335 test-merge9.t
335 test-minifileset.py
336 test-minifileset.py
336 test-minirst.py
337 test-minirst.py
337 test-mq-git.t
338 test-mq-git.t
338 test-mq-guards.t
339 test-mq-guards.t
339 test-mq-header-date.t
340 test-mq-header-date.t
340 test-mq-header-from.t
341 test-mq-header-from.t
341 test-mq-merge.t
342 test-mq-merge.t
342 test-mq-pull-from-bundle.t
343 test-mq-pull-from-bundle.t
343 test-mq-qclone-http.t
344 test-mq-qclone-http.t
344 test-mq-qdelete.t
345 test-mq-qdelete.t
345 test-mq-qdiff.t
346 test-mq-qdiff.t
346 test-mq-qfold.t
347 test-mq-qfold.t
347 test-mq-qgoto.t
348 test-mq-qgoto.t
348 test-mq-qimport-fail-cleanup.t
349 test-mq-qimport-fail-cleanup.t
349 test-mq-qnew.t
350 test-mq-qnew.t
350 test-mq-qpush-exact.t
351 test-mq-qpush-exact.t
351 test-mq-qpush-fail.t
352 test-mq-qpush-fail.t
352 test-mq-qqueue.t
353 test-mq-qqueue.t
353 test-mq-qrefresh-interactive.t
354 test-mq-qrefresh-interactive.t
354 test-mq-qrefresh-replace-log-message.t
355 test-mq-qrefresh-replace-log-message.t
355 test-mq-qrefresh.t
356 test-mq-qrefresh.t
356 test-mq-qrename.t
357 test-mq-qrename.t
357 test-mq-qsave.t
358 test-mq-qsave.t
358 test-mq-safety.t
359 test-mq-safety.t
359 test-mq-subrepo.t
360 test-mq-subrepo.t
360 test-mq-symlinks.t
361 test-mq-symlinks.t
361 test-mq.t
362 test-mq.t
362 test-mv-cp-st-diff.t
363 test-mv-cp-st-diff.t
363 test-narrow-acl.t
364 test-narrow-acl.t
364 test-narrow-archive.t
365 test-narrow-archive.t
365 test-narrow-clone-no-ellipsis.t
366 test-narrow-clone-no-ellipsis.t
366 test-narrow-clone-non-narrow-server.t
367 test-narrow-clone-non-narrow-server.t
367 test-narrow-clone-nonlinear.t
368 test-narrow-clone-nonlinear.t
368 test-narrow-clone.t
369 test-narrow-clone.t
369 test-narrow-commit.t
370 test-narrow-commit.t
370 test-narrow-copies.t
371 test-narrow-copies.t
371 test-narrow-debugcommands.t
372 test-narrow-debugcommands.t
372 test-narrow-debugrebuilddirstate.t
373 test-narrow-debugrebuilddirstate.t
373 test-narrow-exchange-merges.t
374 test-narrow-exchange-merges.t
374 test-narrow-exchange.t
375 test-narrow-exchange.t
375 test-narrow-expanddirstate.t
376 test-narrow-expanddirstate.t
376 test-narrow-merge.t
377 test-narrow-merge.t
377 test-narrow-patch.t
378 test-narrow-patch.t
378 test-narrow-patterns.t
379 test-narrow-patterns.t
379 test-narrow-pull.t
380 test-narrow-pull.t
380 test-narrow-rebase.t
381 test-narrow-rebase.t
381 test-narrow-shallow-merges.t
382 test-narrow-shallow-merges.t
382 test-narrow-shallow.t
383 test-narrow-shallow.t
383 test-narrow-strip.t
384 test-narrow-strip.t
384 test-narrow-trackedcmd.t
385 test-narrow-trackedcmd.t
385 test-narrow-update.t
386 test-narrow-update.t
386 test-narrow-widen-no-ellipsis.t
387 test-narrow-widen-no-ellipsis.t
387 test-narrow-widen.t
388 test-narrow-widen.t
388 test-narrow.t
389 test-narrow.t
389 test-nested-repo.t
390 test-nested-repo.t
390 test-newbranch.t
391 test-newbranch.t
391 test-newercgi.t
392 test-newercgi.t
392 test-nointerrupt.t
393 test-nointerrupt.t
393 test-obshistory.t
394 test-obshistory.t
394 test-obsmarker-template.t
395 test-obsmarker-template.t
395 test-obsmarkers-effectflag.t
396 test-obsmarkers-effectflag.t
396 test-obsolete-bounds-checking.t
397 test-obsolete-bounds-checking.t
397 test-obsolete-bundle-strip.t
398 test-obsolete-bundle-strip.t
398 test-obsolete-changeset-exchange.t
399 test-obsolete-changeset-exchange.t
399 test-obsolete-checkheads.t
400 test-obsolete-checkheads.t
400 test-obsolete-distributed.t
401 test-obsolete-distributed.t
401 test-obsolete-divergent.t
402 test-obsolete-divergent.t
402 test-obsolete-tag-cache.t
403 test-obsolete-tag-cache.t
403 test-obsolete.t
404 test-obsolete.t
404 test-origbackup-conflict.t
405 test-origbackup-conflict.t
405 test-pager-legacy.t
406 test-pager-legacy.t
406 test-pager.t
407 test-pager.t
407 test-parents.t
408 test-parents.t
408 test-parse-date.t
409 test-parse-date.t
409 test-parseindex2.py
410 test-parseindex2.py
410 test-patch-offset.t
411 test-patch-offset.t
411 test-patch.t
412 test-patch.t
412 test-patchbomb-bookmark.t
413 test-patchbomb-bookmark.t
413 test-patchbomb-tls.t
414 test-patchbomb-tls.t
414 test-patchbomb.t
415 test-patchbomb.t
415 test-pathconflicts-basic.t
416 test-pathconflicts-basic.t
416 test-pathconflicts-merge.t
417 test-pathconflicts-merge.t
417 test-pathconflicts-update.t
418 test-pathconflicts-update.t
418 test-pathencode.py
419 test-pathencode.py
419 test-pending.t
420 test-pending.t
420 test-permissions.t
421 test-permissions.t
421 test-phases-exchange.t
422 test-phases-exchange.t
422 test-phases.t
423 test-phases.t
423 test-profile.t
424 test-profile.t
424 test-progress.t
425 test-progress.t
425 test-pull-branch.t
426 test-pull-branch.t
426 test-pull-http.t
427 test-pull-http.t
427 test-pull-permission.t
428 test-pull-permission.t
428 test-pull-pull-corruption.t
429 test-pull-pull-corruption.t
429 test-pull-r.t
430 test-pull-r.t
430 test-pull-update.t
431 test-pull-update.t
431 test-pull.t
432 test-pull.t
432 test-purge.t
433 test-purge.t
433 test-push-cgi.t
434 test-push-cgi.t
434 test-push-checkheads-partial-C1.t
435 test-push-checkheads-partial-C1.t
435 test-push-checkheads-partial-C2.t
436 test-push-checkheads-partial-C2.t
436 test-push-checkheads-partial-C3.t
437 test-push-checkheads-partial-C3.t
437 test-push-checkheads-partial-C4.t
438 test-push-checkheads-partial-C4.t
438 test-push-checkheads-pruned-B1.t
439 test-push-checkheads-pruned-B1.t
439 test-push-checkheads-pruned-B2.t
440 test-push-checkheads-pruned-B2.t
440 test-push-checkheads-pruned-B3.t
441 test-push-checkheads-pruned-B3.t
441 test-push-checkheads-pruned-B4.t
442 test-push-checkheads-pruned-B4.t
442 test-push-checkheads-pruned-B5.t
443 test-push-checkheads-pruned-B5.t
443 test-push-checkheads-pruned-B6.t
444 test-push-checkheads-pruned-B6.t
444 test-push-checkheads-pruned-B7.t
445 test-push-checkheads-pruned-B7.t
445 test-push-checkheads-pruned-B8.t
446 test-push-checkheads-pruned-B8.t
446 test-push-checkheads-superceed-A1.t
447 test-push-checkheads-superceed-A1.t
447 test-push-checkheads-superceed-A2.t
448 test-push-checkheads-superceed-A2.t
448 test-push-checkheads-superceed-A3.t
449 test-push-checkheads-superceed-A3.t
449 test-push-checkheads-superceed-A4.t
450 test-push-checkheads-superceed-A4.t
450 test-push-checkheads-superceed-A5.t
451 test-push-checkheads-superceed-A5.t
451 test-push-checkheads-superceed-A6.t
452 test-push-checkheads-superceed-A6.t
452 test-push-checkheads-superceed-A7.t
453 test-push-checkheads-superceed-A7.t
453 test-push-checkheads-superceed-A8.t
454 test-push-checkheads-superceed-A8.t
454 test-push-checkheads-unpushed-D1.t
455 test-push-checkheads-unpushed-D1.t
455 test-push-checkheads-unpushed-D2.t
456 test-push-checkheads-unpushed-D2.t
456 test-push-checkheads-unpushed-D3.t
457 test-push-checkheads-unpushed-D3.t
457 test-push-checkheads-unpushed-D4.t
458 test-push-checkheads-unpushed-D4.t
458 test-push-checkheads-unpushed-D5.t
459 test-push-checkheads-unpushed-D5.t
459 test-push-checkheads-unpushed-D6.t
460 test-push-checkheads-unpushed-D6.t
460 test-push-checkheads-unpushed-D7.t
461 test-push-checkheads-unpushed-D7.t
461 test-push-http.t
462 test-push-http.t
462 test-push-warn.t
463 test-push-warn.t
463 test-push.t
464 test-push.t
464 test-pushvars.t
465 test-pushvars.t
465 test-qrecord.t
466 test-qrecord.t
466 test-rebase-abort.t
467 test-rebase-abort.t
467 test-rebase-backup.t
468 test-rebase-backup.t
468 test-rebase-base-flag.t
469 test-rebase-base-flag.t
469 test-rebase-bookmarks.t
470 test-rebase-bookmarks.t
470 test-rebase-brute-force.t
471 test-rebase-brute-force.t
471 test-rebase-cache.t
472 test-rebase-cache.t
472 test-rebase-check-restore.t
473 test-rebase-check-restore.t
473 test-rebase-collapse.t
474 test-rebase-collapse.t
474 test-rebase-conflicts.t
475 test-rebase-conflicts.t
475 test-rebase-dest.t
476 test-rebase-dest.t
476 test-rebase-detach.t
477 test-rebase-detach.t
477 test-rebase-emptycommit.t
478 test-rebase-emptycommit.t
478 test-rebase-inmemory.t
479 test-rebase-inmemory.t
479 test-rebase-interruptions.t
480 test-rebase-interruptions.t
480 test-rebase-issue-noparam-single-rev.t
481 test-rebase-issue-noparam-single-rev.t
481 test-rebase-legacy.t
482 test-rebase-legacy.t
482 test-rebase-mq-skip.t
483 test-rebase-mq-skip.t
483 test-rebase-mq.t
484 test-rebase-mq.t
484 test-rebase-named-branches.t
485 test-rebase-named-branches.t
485 test-rebase-newancestor.t
486 test-rebase-newancestor.t
486 test-rebase-obsolete.t
487 test-rebase-obsolete.t
487 test-rebase-parameters.t
488 test-rebase-parameters.t
488 test-rebase-partial.t
489 test-rebase-partial.t
489 test-rebase-pull.t
490 test-rebase-pull.t
490 test-rebase-rename.t
491 test-rebase-rename.t
491 test-rebase-scenario-global.t
492 test-rebase-scenario-global.t
492 test-rebase-templates.t
493 test-rebase-templates.t
493 test-rebase-transaction.t
494 test-rebase-transaction.t
494 test-rebuildstate.t
495 test-rebuildstate.t
495 test-record.t
496 test-record.t
496 test-releasenotes-formatting.t
497 test-releasenotes-formatting.t
497 test-releasenotes-merging.t
498 test-releasenotes-merging.t
498 test-releasenotes-parsing.t
499 test-releasenotes-parsing.t
499 test-relink.t
500 test-relink.t
500 test-remove.t
501 test-remove.t
501 test-removeemptydirs.t
502 test-removeemptydirs.t
502 test-rename-after-merge.t
503 test-rename-after-merge.t
503 test-rename-dir-merge.t
504 test-rename-dir-merge.t
504 test-rename-merge1.t
505 test-rename-merge1.t
505 test-rename-merge2.t
506 test-rename-merge2.t
506 test-rename.t
507 test-rename.t
507 test-repair-strip.t
508 test-repair-strip.t
508 test-repo-compengines.t
509 test-repo-compengines.t
509 test-requires.t
510 test-requires.t
510 test-resolve.t
511 test-resolve.t
511 test-revert-flags.t
512 test-revert-flags.t
512 test-revert-interactive.t
513 test-revert-interactive.t
513 test-revert-unknown.t
514 test-revert-unknown.t
514 test-revert.t
515 test-revert.t
515 test-revisions.t
516 test-revisions.t
516 test-revlog-ancestry.py
517 test-revlog-ancestry.py
517 test-revlog-group-emptyiter.t
518 test-revlog-group-emptyiter.t
518 test-revlog-mmapindex.t
519 test-revlog-mmapindex.t
519 test-revlog-packentry.t
520 test-revlog-packentry.t
520 test-revlog-raw.py
521 test-revlog-raw.py
521 test-revlog-v2.t
522 test-revlog-v2.t
522 test-revset-dirstate-parents.t
523 test-revset-dirstate-parents.t
523 test-revset-legacy-lookup.t
524 test-revset-legacy-lookup.t
524 test-revset-outgoing.t
525 test-revset-outgoing.t
525 test-rollback.t
526 test-rollback.t
526 test-run-tests.py
527 test-run-tests.py
527 test-run-tests.t
528 test-run-tests.t
528 test-schemes.t
529 test-schemes.t
529 test-serve.t
530 test-serve.t
530 test-setdiscovery.t
531 test-setdiscovery.t
531 test-share.t
532 test-share.t
532 test-shelve.t
533 test-shelve.t
533 test-show-stack.t
534 test-show-stack.t
534 test-show-work.t
535 test-show-work.t
535 test-show.t
536 test-show.t
536 test-simple-update.t
537 test-simple-update.t
537 test-simplekeyvaluefile.py
538 test-simplekeyvaluefile.py
538 test-simplemerge.py
539 test-simplemerge.py
539 test-single-head.t
540 test-single-head.t
540 test-sparse-clear.t
541 test-sparse-clear.t
541 test-sparse-clone.t
542 test-sparse-clone.t
542 test-sparse-import.t
543 test-sparse-import.t
543 test-sparse-merges.t
544 test-sparse-merges.t
544 test-sparse-profiles.t
545 test-sparse-profiles.t
545 test-sparse-requirement.t
546 test-sparse-requirement.t
546 test-sparse-verbose-json.t
547 test-sparse-verbose-json.t
547 test-sparse.t
548 test-sparse.t
548 test-split.t
549 test-split.t
549 test-ssh-bundle1.t
550 test-ssh-bundle1.t
550 test-ssh-clone-r.t
551 test-ssh-clone-r.t
551 test-ssh-proto-unbundle.t
552 test-ssh-proto-unbundle.t
552 test-ssh-proto.t
553 test-ssh-proto.t
553 test-ssh-repoerror.t
554 test-ssh-repoerror.t
554 test-ssh.t
555 test-ssh.t
555 test-sshserver.py
556 test-sshserver.py
556 test-stack.t
557 test-stack.t
557 test-status-color.t
558 test-status-color.t
558 test-status-inprocess.py
559 test-status-inprocess.py
559 test-status-rev.t
560 test-status-rev.t
560 test-status-terse.t
561 test-status-terse.t
561 test-storage.py
562 test-storage.py
562 test-stream-bundle-v2.t
563 test-stream-bundle-v2.t
563 test-strict.t
564 test-strict.t
564 test-strip-cross.t
565 test-strip-cross.t
565 test-strip.t
566 test-strip.t
566 test-subrepo-deep-nested-change.t
567 test-subrepo-deep-nested-change.t
567 test-subrepo-missing.t
568 test-subrepo-missing.t
568 test-subrepo-paths.t
569 test-subrepo-paths.t
569 test-subrepo-recursion.t
570 test-subrepo-recursion.t
570 test-subrepo-relative-path.t
571 test-subrepo-relative-path.t
571 test-subrepo.t
572 test-subrepo.t
572 test-symlink-os-yes-fs-no.py
573 test-symlink-os-yes-fs-no.py
573 test-symlink-placeholder.t
574 test-symlink-placeholder.t
574 test-symlinks.t
575 test-symlinks.t
575 test-tag.t
576 test-tag.t
576 test-tags.t
577 test-tags.t
577 test-template-basic.t
578 test-template-basic.t
578 test-template-functions.t
579 test-template-functions.t
579 test-template-keywords.t
580 test-template-keywords.t
580 test-template-map.t
581 test-template-map.t
581 test-tools.t
582 test-tools.t
582 test-transplant.t
583 test-transplant.t
583 test-treemanifest.t
584 test-treemanifest.t
584 test-ui-color.py
585 test-ui-color.py
585 test-ui-config.py
586 test-ui-config.py
586 test-ui-verbosity.py
587 test-ui-verbosity.py
587 test-unamend.t
588 test-unamend.t
588 test-unbundlehash.t
589 test-unbundlehash.t
589 test-uncommit.t
590 test-uncommit.t
590 test-unified-test.t
591 test-unified-test.t
591 test-unionrepo.t
592 test-unionrepo.t
592 test-unrelated-pull.t
593 test-unrelated-pull.t
593 test-up-local-change.t
594 test-up-local-change.t
594 test-update-branches.t
595 test-update-branches.t
595 test-update-dest.t
596 test-update-dest.t
596 test-update-issue1456.t
597 test-update-issue1456.t
597 test-update-names.t
598 test-update-names.t
598 test-update-reverse.t
599 test-update-reverse.t
599 test-upgrade-repo.t
600 test-upgrade-repo.t
600 test-url-download.t
601 test-url-download.t
601 test-url-rev.t
602 test-url-rev.t
602 test-url.py
603 test-url.py
603 test-username-newline.t
604 test-username-newline.t
604 test-util.py
605 test-util.py
605 test-verify.t
606 test-verify.t
606 test-walk.t
607 test-walk.t
607 test-walkrepo.py
608 test-walkrepo.py
608 test-websub.t
609 test-websub.t
609 test-win32text.t
610 test-win32text.t
610 test-wireproto-clientreactor.py
611 test-wireproto-clientreactor.py
611 test-wireproto-command-branchmap.t
612 test-wireproto-command-branchmap.t
612 test-wireproto-command-changesetdata.t
613 test-wireproto-command-changesetdata.t
613 test-wireproto-command-filedata.t
614 test-wireproto-command-filedata.t
614 test-wireproto-command-filesdata.t
615 test-wireproto-command-filesdata.t
615 test-wireproto-command-heads.t
616 test-wireproto-command-heads.t
616 test-wireproto-command-listkeys.t
617 test-wireproto-command-listkeys.t
617 test-wireproto-command-lookup.t
618 test-wireproto-command-lookup.t
618 test-wireproto-command-manifestdata.t
619 test-wireproto-command-manifestdata.t
619 test-wireproto-command-pushkey.t
620 test-wireproto-command-pushkey.t
620 test-wireproto-framing.py
621 test-wireproto-framing.py
621 test-wireproto-serverreactor.py
622 test-wireproto-serverreactor.py
622 test-wireproto.py
623 test-wireproto.py
623 test-wsgirequest.py
624 test-wsgirequest.py
624 test-xdg.t
625 test-xdg.t
General Comments 0
You need to be logged in to leave comments. Login now