##// END OF EJS Templates
json: implement {helptopics} template
Gregory Szorc -
r24590:0bb733df default
parent child Browse files
Show More
@@ -1,89 +1,97 b''
1 mimetype = 'application/json'
1 mimetype = 'application/json'
2 filerevision = '"not yet implemented"'
2 filerevision = '"not yet implemented"'
3 search = '"not yet implemented"'
3 search = '"not yet implemented"'
4 # changelog and shortlog are the same web API but with different
4 # changelog and shortlog are the same web API but with different
5 # number of entries.
5 # number of entries.
6 changelog = changelist.tmpl
6 changelog = changelist.tmpl
7 shortlog = changelist.tmpl
7 shortlog = changelist.tmpl
8 changelistentry = '\{
8 changelistentry = '\{
9 "node": {node|json},
9 "node": {node|json},
10 "date": {date|json},
10 "date": {date|json},
11 "desc": {desc|json},
11 "desc": {desc|json},
12 "bookmarks": [{join(bookmarks%changelistentryname, ", ")}],
12 "bookmarks": [{join(bookmarks%changelistentryname, ", ")}],
13 "tags": [{join(tags%changelistentryname, ", ")}],
13 "tags": [{join(tags%changelistentryname, ", ")}],
14 "user": {author|json}
14 "user": {author|json}
15 }'
15 }'
16 changelistentryname = '{name|json}'
16 changelistentryname = '{name|json}'
17 changeset = '\{
17 changeset = '\{
18 "node": {node|json},
18 "node": {node|json},
19 "date": {date|json},
19 "date": {date|json},
20 "desc": {desc|json},
20 "desc": {desc|json},
21 "branch": {if(branch, branch%changesetbranch, "default"|json)},
21 "branch": {if(branch, branch%changesetbranch, "default"|json)},
22 "bookmarks": [{join(changesetbookmark, ", ")}],
22 "bookmarks": [{join(changesetbookmark, ", ")}],
23 "tags": [{join(changesettag, ", ")}],
23 "tags": [{join(changesettag, ", ")}],
24 "user": {author|json},
24 "user": {author|json},
25 "parents": [{join(parent%changesetparent, ", ")}],
25 "parents": [{join(parent%changesetparent, ", ")}],
26 "phase": {phase|json}
26 "phase": {phase|json}
27 }'
27 }'
28 changesetbranch = '{name|json}'
28 changesetbranch = '{name|json}'
29 changesetbookmark = '{bookmark|json}'
29 changesetbookmark = '{bookmark|json}'
30 changesettag = '{tag|json}'
30 changesettag = '{tag|json}'
31 changesetparent = '{node|json}'
31 changesetparent = '{node|json}'
32 manifest = '\{
32 manifest = '\{
33 "node": {node|json},
33 "node": {node|json},
34 "abspath": {path|json},
34 "abspath": {path|json},
35 "directories": [{join(dentries%direntry, ", ")}],
35 "directories": [{join(dentries%direntry, ", ")}],
36 "files": [{join(fentries%fileentry, ", ")}],
36 "files": [{join(fentries%fileentry, ", ")}],
37 "bookmarks": [{join(bookmarks%name, ", ")}],
37 "bookmarks": [{join(bookmarks%name, ", ")}],
38 "tags": [{join(tags%name, ", ")}]
38 "tags": [{join(tags%name, ", ")}]
39 }'
39 }'
40 name = '{name|json}'
40 name = '{name|json}'
41 direntry = '\{
41 direntry = '\{
42 "abspath": {path|json},
42 "abspath": {path|json},
43 "basename": {basename|json},
43 "basename": {basename|json},
44 "emptydirs": {emptydirs|json}
44 "emptydirs": {emptydirs|json}
45 }'
45 }'
46 fileentry = '\{
46 fileentry = '\{
47 "abspath": {file|json},
47 "abspath": {file|json},
48 "basename": {basename|json},
48 "basename": {basename|json},
49 "date": {date|json},
49 "date": {date|json},
50 "size": {size|json},
50 "size": {size|json},
51 "flags": {permissions|json}
51 "flags": {permissions|json}
52 }'
52 }'
53 tags = '\{
53 tags = '\{
54 "node": {node|json},
54 "node": {node|json},
55 "tags": [{join(entriesnotip%tagentry, ", ")}]
55 "tags": [{join(entriesnotip%tagentry, ", ")}]
56 }'
56 }'
57 tagentry = '\{
57 tagentry = '\{
58 "tag": {tag|json},
58 "tag": {tag|json},
59 "node": {node|json},
59 "node": {node|json},
60 "date": {date|json}
60 "date": {date|json}
61 }'
61 }'
62 bookmarks = '\{
62 bookmarks = '\{
63 "node": {node|json},
63 "node": {node|json},
64 "bookmarks": [{join(entries%bookmarkentry, ", ")}]
64 "bookmarks": [{join(entries%bookmarkentry, ", ")}]
65 }'
65 }'
66 bookmarkentry = '\{
66 bookmarkentry = '\{
67 "bookmark": {bookmark|json},
67 "bookmark": {bookmark|json},
68 "node": {node|json},
68 "node": {node|json},
69 "date": {date|json}
69 "date": {date|json}
70 }'
70 }'
71 branches = '\{
71 branches = '\{
72 "branches": [{join(entries%branchentry, ", ")}]
72 "branches": [{join(entries%branchentry, ", ")}]
73 }'
73 }'
74 branchentry = '\{
74 branchentry = '\{
75 "branch": {branch|json},
75 "branch": {branch|json},
76 "node": {node|json},
76 "node": {node|json},
77 "date": {date|json},
77 "date": {date|json},
78 "status": {status|json}
78 "status": {status|json}
79 }'
79 }'
80 summary = '"not yet implemented"'
80 summary = '"not yet implemented"'
81 filediff = '"not yet implemented"'
81 filediff = '"not yet implemented"'
82 filecomparison = '"not yet implemented"'
82 filecomparison = '"not yet implemented"'
83 fileannotate = '"not yet implemented"'
83 fileannotate = '"not yet implemented"'
84 filelog = '"not yet implemented"'
84 filelog = '"not yet implemented"'
85 graph = '"not yet implemented"'
85 graph = '"not yet implemented"'
86 helptopics = '"not yet implemented"'
86 helptopics = '\{
87 "topics": [{join(topics%helptopicentry, ", ")}],
88 "earlycommands": [{join(earlycommands%helptopicentry, ", ")}],
89 "othercommands": [{join(othercommands%helptopicentry, ", ")}]
90 }'
91 helptopicentry = '\{
92 "topic": {topic|json},
93 "summary": {summary|json}
94 }'
87 help = '"not yet implemented"'
95 help = '"not yet implemented"'
88 filenodelink = ''
96 filenodelink = ''
89 filenolink = ''
97 filenolink = ''
@@ -1,727 +1,1006 b''
1 #require json
1 #require json
2 #require serve
2 #require serve
3
3
4 $ request() {
4 $ request() {
5 > $TESTDIR/get-with-headers.py --json localhost:$HGPORT "$1"
5 > $TESTDIR/get-with-headers.py --json localhost:$HGPORT "$1"
6 > }
6 > }
7
7
8 $ hg init test
8 $ hg init test
9 $ cd test
9 $ cd test
10 $ mkdir da
10 $ mkdir da
11 $ echo foo > da/foo
11 $ echo foo > da/foo
12 $ echo foo > foo
12 $ echo foo > foo
13 $ hg -q ci -A -m initial
13 $ hg -q ci -A -m initial
14 $ echo bar > foo
14 $ echo bar > foo
15 $ hg ci -m 'modify foo'
15 $ hg ci -m 'modify foo'
16 $ echo bar > da/foo
16 $ echo bar > da/foo
17 $ hg ci -m 'modify da/foo'
17 $ hg ci -m 'modify da/foo'
18 $ hg bookmark bookmark1
18 $ hg bookmark bookmark1
19 $ hg up default
19 $ hg up default
20 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
20 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
21 (leaving bookmark bookmark1)
21 (leaving bookmark bookmark1)
22 $ hg mv foo foo-new
22 $ hg mv foo foo-new
23 $ hg commit -m 'move foo'
23 $ hg commit -m 'move foo'
24 $ hg tag -m 'create tag' tag1
24 $ hg tag -m 'create tag' tag1
25 $ hg phase --public -r .
25 $ hg phase --public -r .
26 $ echo baz > da/foo
26 $ echo baz > da/foo
27 $ hg commit -m 'another commit to da/foo'
27 $ hg commit -m 'another commit to da/foo'
28 $ hg tag -m 'create tag2' tag2
28 $ hg tag -m 'create tag2' tag2
29 $ hg bookmark bookmark2
29 $ hg bookmark bookmark2
30 $ hg -q up -r 0
30 $ hg -q up -r 0
31 $ hg -q branch test-branch
31 $ hg -q branch test-branch
32 $ echo branch > foo
32 $ echo branch > foo
33 $ hg commit -m 'create test branch'
33 $ hg commit -m 'create test branch'
34 $ echo branch_commit_2 > foo
34 $ echo branch_commit_2 > foo
35 $ hg commit -m 'another commit in test-branch'
35 $ hg commit -m 'another commit in test-branch'
36 $ hg -q up default
36 $ hg -q up default
37 $ hg merge --tool :local test-branch
37 $ hg merge --tool :local test-branch
38 0 files updated, 1 files merged, 0 files removed, 0 files unresolved
38 0 files updated, 1 files merged, 0 files removed, 0 files unresolved
39 (branch merge, don't forget to commit)
39 (branch merge, don't forget to commit)
40 $ hg commit -m 'merge test-branch into default'
40 $ hg commit -m 'merge test-branch into default'
41
41
42 $ hg log -G
42 $ hg log -G
43 @ changeset: 9:cc725e08502a
43 @ changeset: 9:cc725e08502a
44 |\ tag: tip
44 |\ tag: tip
45 | | parent: 6:ceed296fe500
45 | | parent: 6:ceed296fe500
46 | | parent: 8:ed66c30e87eb
46 | | parent: 8:ed66c30e87eb
47 | | user: test
47 | | user: test
48 | | date: Thu Jan 01 00:00:00 1970 +0000
48 | | date: Thu Jan 01 00:00:00 1970 +0000
49 | | summary: merge test-branch into default
49 | | summary: merge test-branch into default
50 | |
50 | |
51 | o changeset: 8:ed66c30e87eb
51 | o changeset: 8:ed66c30e87eb
52 | | branch: test-branch
52 | | branch: test-branch
53 | | user: test
53 | | user: test
54 | | date: Thu Jan 01 00:00:00 1970 +0000
54 | | date: Thu Jan 01 00:00:00 1970 +0000
55 | | summary: another commit in test-branch
55 | | summary: another commit in test-branch
56 | |
56 | |
57 | o changeset: 7:6ab967a8ab34
57 | o changeset: 7:6ab967a8ab34
58 | | branch: test-branch
58 | | branch: test-branch
59 | | parent: 0:06e557f3edf6
59 | | parent: 0:06e557f3edf6
60 | | user: test
60 | | user: test
61 | | date: Thu Jan 01 00:00:00 1970 +0000
61 | | date: Thu Jan 01 00:00:00 1970 +0000
62 | | summary: create test branch
62 | | summary: create test branch
63 | |
63 | |
64 o | changeset: 6:ceed296fe500
64 o | changeset: 6:ceed296fe500
65 | | bookmark: bookmark2
65 | | bookmark: bookmark2
66 | | user: test
66 | | user: test
67 | | date: Thu Jan 01 00:00:00 1970 +0000
67 | | date: Thu Jan 01 00:00:00 1970 +0000
68 | | summary: create tag2
68 | | summary: create tag2
69 | |
69 | |
70 o | changeset: 5:f2890a05fea4
70 o | changeset: 5:f2890a05fea4
71 | | tag: tag2
71 | | tag: tag2
72 | | user: test
72 | | user: test
73 | | date: Thu Jan 01 00:00:00 1970 +0000
73 | | date: Thu Jan 01 00:00:00 1970 +0000
74 | | summary: another commit to da/foo
74 | | summary: another commit to da/foo
75 | |
75 | |
76 o | changeset: 4:93a8ce14f891
76 o | changeset: 4:93a8ce14f891
77 | | user: test
77 | | user: test
78 | | date: Thu Jan 01 00:00:00 1970 +0000
78 | | date: Thu Jan 01 00:00:00 1970 +0000
79 | | summary: create tag
79 | | summary: create tag
80 | |
80 | |
81 o | changeset: 3:78896eb0e102
81 o | changeset: 3:78896eb0e102
82 | | tag: tag1
82 | | tag: tag1
83 | | user: test
83 | | user: test
84 | | date: Thu Jan 01 00:00:00 1970 +0000
84 | | date: Thu Jan 01 00:00:00 1970 +0000
85 | | summary: move foo
85 | | summary: move foo
86 | |
86 | |
87 o | changeset: 2:8d7c456572ac
87 o | changeset: 2:8d7c456572ac
88 | | bookmark: bookmark1
88 | | bookmark: bookmark1
89 | | user: test
89 | | user: test
90 | | date: Thu Jan 01 00:00:00 1970 +0000
90 | | date: Thu Jan 01 00:00:00 1970 +0000
91 | | summary: modify da/foo
91 | | summary: modify da/foo
92 | |
92 | |
93 o | changeset: 1:f8bbb9024b10
93 o | changeset: 1:f8bbb9024b10
94 |/ user: test
94 |/ user: test
95 | date: Thu Jan 01 00:00:00 1970 +0000
95 | date: Thu Jan 01 00:00:00 1970 +0000
96 | summary: modify foo
96 | summary: modify foo
97 |
97 |
98 o changeset: 0:06e557f3edf6
98 o changeset: 0:06e557f3edf6
99 user: test
99 user: test
100 date: Thu Jan 01 00:00:00 1970 +0000
100 date: Thu Jan 01 00:00:00 1970 +0000
101 summary: initial
101 summary: initial
102
102
103
103
104 $ hg serve -p $HGPORT -d --pid-file=hg.pid -A access.log -E error.log
104 $ hg serve -p $HGPORT -d --pid-file=hg.pid -A access.log -E error.log
105 $ cat hg.pid >> $DAEMON_PIDS
105 $ cat hg.pid >> $DAEMON_PIDS
106
106
107 (Try to keep these in roughly the order they are defined in webcommands.py)
107 (Try to keep these in roughly the order they are defined in webcommands.py)
108
108
109 (log is handled by filelog/ and changelog/ - ignore it)
109 (log is handled by filelog/ and changelog/ - ignore it)
110
110
111 (rawfile/ doesn't use templating - nothing to test)
111 (rawfile/ doesn't use templating - nothing to test)
112
112
113 file/{revision}/{path} shows file revision
113 file/{revision}/{path} shows file revision
114
114
115 $ request json-file/06e557f3edf6/foo
115 $ request json-file/06e557f3edf6/foo
116 200 Script output follows
116 200 Script output follows
117
117
118 "not yet implemented"
118 "not yet implemented"
119
119
120 file/{revision} shows root directory info
120 file/{revision} shows root directory info
121
121
122 $ request json-file/cc725e08502a
122 $ request json-file/cc725e08502a
123 200 Script output follows
123 200 Script output follows
124
124
125 {
125 {
126 "abspath": "/",
126 "abspath": "/",
127 "bookmarks": [],
127 "bookmarks": [],
128 "directories": [
128 "directories": [
129 {
129 {
130 "abspath": "/da",
130 "abspath": "/da",
131 "basename": "da",
131 "basename": "da",
132 "emptydirs": ""
132 "emptydirs": ""
133 }
133 }
134 ],
134 ],
135 "files": [
135 "files": [
136 {
136 {
137 "abspath": ".hgtags",
137 "abspath": ".hgtags",
138 "basename": ".hgtags",
138 "basename": ".hgtags",
139 "date": [
139 "date": [
140 0.0,
140 0.0,
141 0
141 0
142 ],
142 ],
143 "flags": "",
143 "flags": "",
144 "size": 92
144 "size": 92
145 },
145 },
146 {
146 {
147 "abspath": "foo-new",
147 "abspath": "foo-new",
148 "basename": "foo-new",
148 "basename": "foo-new",
149 "date": [
149 "date": [
150 0.0,
150 0.0,
151 0
151 0
152 ],
152 ],
153 "flags": "",
153 "flags": "",
154 "size": 4
154 "size": 4
155 }
155 }
156 ],
156 ],
157 "node": "cc725e08502a79dd1eda913760fbe06ed7a9abc7",
157 "node": "cc725e08502a79dd1eda913760fbe06ed7a9abc7",
158 "tags": [
158 "tags": [
159 "tip"
159 "tip"
160 ]
160 ]
161 }
161 }
162
162
163 changelog/ shows information about several changesets
163 changelog/ shows information about several changesets
164
164
165 $ request json-changelog
165 $ request json-changelog
166 200 Script output follows
166 200 Script output follows
167
167
168 {
168 {
169 "changeset_count": 10,
169 "changeset_count": 10,
170 "changesets": [
170 "changesets": [
171 {
171 {
172 "bookmarks": [],
172 "bookmarks": [],
173 "date": [
173 "date": [
174 0.0,
174 0.0,
175 0
175 0
176 ],
176 ],
177 "desc": "merge test-branch into default",
177 "desc": "merge test-branch into default",
178 "node": "cc725e08502a79dd1eda913760fbe06ed7a9abc7",
178 "node": "cc725e08502a79dd1eda913760fbe06ed7a9abc7",
179 "tags": [
179 "tags": [
180 "tip"
180 "tip"
181 ],
181 ],
182 "user": "test"
182 "user": "test"
183 },
183 },
184 {
184 {
185 "bookmarks": [],
185 "bookmarks": [],
186 "date": [
186 "date": [
187 0.0,
187 0.0,
188 0
188 0
189 ],
189 ],
190 "desc": "another commit in test-branch",
190 "desc": "another commit in test-branch",
191 "node": "ed66c30e87eb65337c05a4229efaa5f1d5285a90",
191 "node": "ed66c30e87eb65337c05a4229efaa5f1d5285a90",
192 "tags": [],
192 "tags": [],
193 "user": "test"
193 "user": "test"
194 },
194 },
195 {
195 {
196 "bookmarks": [],
196 "bookmarks": [],
197 "date": [
197 "date": [
198 0.0,
198 0.0,
199 0
199 0
200 ],
200 ],
201 "desc": "create test branch",
201 "desc": "create test branch",
202 "node": "6ab967a8ab3489227a83f80e920faa039a71819f",
202 "node": "6ab967a8ab3489227a83f80e920faa039a71819f",
203 "tags": [],
203 "tags": [],
204 "user": "test"
204 "user": "test"
205 },
205 },
206 {
206 {
207 "bookmarks": [
207 "bookmarks": [
208 "bookmark2"
208 "bookmark2"
209 ],
209 ],
210 "date": [
210 "date": [
211 0.0,
211 0.0,
212 0
212 0
213 ],
213 ],
214 "desc": "create tag2",
214 "desc": "create tag2",
215 "node": "ceed296fe500c3fac9541e31dad860cb49c89e45",
215 "node": "ceed296fe500c3fac9541e31dad860cb49c89e45",
216 "tags": [],
216 "tags": [],
217 "user": "test"
217 "user": "test"
218 },
218 },
219 {
219 {
220 "bookmarks": [],
220 "bookmarks": [],
221 "date": [
221 "date": [
222 0.0,
222 0.0,
223 0
223 0
224 ],
224 ],
225 "desc": "another commit to da/foo",
225 "desc": "another commit to da/foo",
226 "node": "f2890a05fea49bfaf9fb27ed5490894eba32da78",
226 "node": "f2890a05fea49bfaf9fb27ed5490894eba32da78",
227 "tags": [
227 "tags": [
228 "tag2"
228 "tag2"
229 ],
229 ],
230 "user": "test"
230 "user": "test"
231 },
231 },
232 {
232 {
233 "bookmarks": [],
233 "bookmarks": [],
234 "date": [
234 "date": [
235 0.0,
235 0.0,
236 0
236 0
237 ],
237 ],
238 "desc": "create tag",
238 "desc": "create tag",
239 "node": "93a8ce14f89156426b7fa981af8042da53f03aa0",
239 "node": "93a8ce14f89156426b7fa981af8042da53f03aa0",
240 "tags": [],
240 "tags": [],
241 "user": "test"
241 "user": "test"
242 },
242 },
243 {
243 {
244 "bookmarks": [],
244 "bookmarks": [],
245 "date": [
245 "date": [
246 0.0,
246 0.0,
247 0
247 0
248 ],
248 ],
249 "desc": "move foo",
249 "desc": "move foo",
250 "node": "78896eb0e102174ce9278438a95e12543e4367a7",
250 "node": "78896eb0e102174ce9278438a95e12543e4367a7",
251 "tags": [
251 "tags": [
252 "tag1"
252 "tag1"
253 ],
253 ],
254 "user": "test"
254 "user": "test"
255 },
255 },
256 {
256 {
257 "bookmarks": [
257 "bookmarks": [
258 "bookmark1"
258 "bookmark1"
259 ],
259 ],
260 "date": [
260 "date": [
261 0.0,
261 0.0,
262 0
262 0
263 ],
263 ],
264 "desc": "modify da/foo",
264 "desc": "modify da/foo",
265 "node": "8d7c456572acf3557e8ed8a07286b10c408bcec5",
265 "node": "8d7c456572acf3557e8ed8a07286b10c408bcec5",
266 "tags": [],
266 "tags": [],
267 "user": "test"
267 "user": "test"
268 },
268 },
269 {
269 {
270 "bookmarks": [],
270 "bookmarks": [],
271 "date": [
271 "date": [
272 0.0,
272 0.0,
273 0
273 0
274 ],
274 ],
275 "desc": "modify foo",
275 "desc": "modify foo",
276 "node": "f8bbb9024b10f93cdbb8d940337398291d40dea8",
276 "node": "f8bbb9024b10f93cdbb8d940337398291d40dea8",
277 "tags": [],
277 "tags": [],
278 "user": "test"
278 "user": "test"
279 },
279 },
280 {
280 {
281 "bookmarks": [],
281 "bookmarks": [],
282 "date": [
282 "date": [
283 0.0,
283 0.0,
284 0
284 0
285 ],
285 ],
286 "desc": "initial",
286 "desc": "initial",
287 "node": "06e557f3edf66faa1ccaba5dd8c203c21cc79f1e",
287 "node": "06e557f3edf66faa1ccaba5dd8c203c21cc79f1e",
288 "tags": [],
288 "tags": [],
289 "user": "test"
289 "user": "test"
290 }
290 }
291 ],
291 ],
292 "node": "cc725e08502a79dd1eda913760fbe06ed7a9abc7"
292 "node": "cc725e08502a79dd1eda913760fbe06ed7a9abc7"
293 }
293 }
294
294
295 changelog/{revision} shows information starting at a specific changeset
295 changelog/{revision} shows information starting at a specific changeset
296
296
297 $ request json-changelog/f8bbb9024b10
297 $ request json-changelog/f8bbb9024b10
298 200 Script output follows
298 200 Script output follows
299
299
300 {
300 {
301 "changeset_count": 10,
301 "changeset_count": 10,
302 "changesets": [
302 "changesets": [
303 {
303 {
304 "bookmarks": [],
304 "bookmarks": [],
305 "date": [
305 "date": [
306 0.0,
306 0.0,
307 0
307 0
308 ],
308 ],
309 "desc": "modify foo",
309 "desc": "modify foo",
310 "node": "f8bbb9024b10f93cdbb8d940337398291d40dea8",
310 "node": "f8bbb9024b10f93cdbb8d940337398291d40dea8",
311 "tags": [],
311 "tags": [],
312 "user": "test"
312 "user": "test"
313 },
313 },
314 {
314 {
315 "bookmarks": [],
315 "bookmarks": [],
316 "date": [
316 "date": [
317 0.0,
317 0.0,
318 0
318 0
319 ],
319 ],
320 "desc": "initial",
320 "desc": "initial",
321 "node": "06e557f3edf66faa1ccaba5dd8c203c21cc79f1e",
321 "node": "06e557f3edf66faa1ccaba5dd8c203c21cc79f1e",
322 "tags": [],
322 "tags": [],
323 "user": "test"
323 "user": "test"
324 }
324 }
325 ],
325 ],
326 "node": "f8bbb9024b10f93cdbb8d940337398291d40dea8"
326 "node": "f8bbb9024b10f93cdbb8d940337398291d40dea8"
327 }
327 }
328
328
329 shortlog/ shows information about a set of changesets
329 shortlog/ shows information about a set of changesets
330
330
331 $ request json-shortlog
331 $ request json-shortlog
332 200 Script output follows
332 200 Script output follows
333
333
334 {
334 {
335 "changeset_count": 10,
335 "changeset_count": 10,
336 "changesets": [
336 "changesets": [
337 {
337 {
338 "bookmarks": [],
338 "bookmarks": [],
339 "date": [
339 "date": [
340 0.0,
340 0.0,
341 0
341 0
342 ],
342 ],
343 "desc": "merge test-branch into default",
343 "desc": "merge test-branch into default",
344 "node": "cc725e08502a79dd1eda913760fbe06ed7a9abc7",
344 "node": "cc725e08502a79dd1eda913760fbe06ed7a9abc7",
345 "tags": [
345 "tags": [
346 "tip"
346 "tip"
347 ],
347 ],
348 "user": "test"
348 "user": "test"
349 },
349 },
350 {
350 {
351 "bookmarks": [],
351 "bookmarks": [],
352 "date": [
352 "date": [
353 0.0,
353 0.0,
354 0
354 0
355 ],
355 ],
356 "desc": "another commit in test-branch",
356 "desc": "another commit in test-branch",
357 "node": "ed66c30e87eb65337c05a4229efaa5f1d5285a90",
357 "node": "ed66c30e87eb65337c05a4229efaa5f1d5285a90",
358 "tags": [],
358 "tags": [],
359 "user": "test"
359 "user": "test"
360 },
360 },
361 {
361 {
362 "bookmarks": [],
362 "bookmarks": [],
363 "date": [
363 "date": [
364 0.0,
364 0.0,
365 0
365 0
366 ],
366 ],
367 "desc": "create test branch",
367 "desc": "create test branch",
368 "node": "6ab967a8ab3489227a83f80e920faa039a71819f",
368 "node": "6ab967a8ab3489227a83f80e920faa039a71819f",
369 "tags": [],
369 "tags": [],
370 "user": "test"
370 "user": "test"
371 },
371 },
372 {
372 {
373 "bookmarks": [
373 "bookmarks": [
374 "bookmark2"
374 "bookmark2"
375 ],
375 ],
376 "date": [
376 "date": [
377 0.0,
377 0.0,
378 0
378 0
379 ],
379 ],
380 "desc": "create tag2",
380 "desc": "create tag2",
381 "node": "ceed296fe500c3fac9541e31dad860cb49c89e45",
381 "node": "ceed296fe500c3fac9541e31dad860cb49c89e45",
382 "tags": [],
382 "tags": [],
383 "user": "test"
383 "user": "test"
384 },
384 },
385 {
385 {
386 "bookmarks": [],
386 "bookmarks": [],
387 "date": [
387 "date": [
388 0.0,
388 0.0,
389 0
389 0
390 ],
390 ],
391 "desc": "another commit to da/foo",
391 "desc": "another commit to da/foo",
392 "node": "f2890a05fea49bfaf9fb27ed5490894eba32da78",
392 "node": "f2890a05fea49bfaf9fb27ed5490894eba32da78",
393 "tags": [
393 "tags": [
394 "tag2"
394 "tag2"
395 ],
395 ],
396 "user": "test"
396 "user": "test"
397 },
397 },
398 {
398 {
399 "bookmarks": [],
399 "bookmarks": [],
400 "date": [
400 "date": [
401 0.0,
401 0.0,
402 0
402 0
403 ],
403 ],
404 "desc": "create tag",
404 "desc": "create tag",
405 "node": "93a8ce14f89156426b7fa981af8042da53f03aa0",
405 "node": "93a8ce14f89156426b7fa981af8042da53f03aa0",
406 "tags": [],
406 "tags": [],
407 "user": "test"
407 "user": "test"
408 },
408 },
409 {
409 {
410 "bookmarks": [],
410 "bookmarks": [],
411 "date": [
411 "date": [
412 0.0,
412 0.0,
413 0
413 0
414 ],
414 ],
415 "desc": "move foo",
415 "desc": "move foo",
416 "node": "78896eb0e102174ce9278438a95e12543e4367a7",
416 "node": "78896eb0e102174ce9278438a95e12543e4367a7",
417 "tags": [
417 "tags": [
418 "tag1"
418 "tag1"
419 ],
419 ],
420 "user": "test"
420 "user": "test"
421 },
421 },
422 {
422 {
423 "bookmarks": [
423 "bookmarks": [
424 "bookmark1"
424 "bookmark1"
425 ],
425 ],
426 "date": [
426 "date": [
427 0.0,
427 0.0,
428 0
428 0
429 ],
429 ],
430 "desc": "modify da/foo",
430 "desc": "modify da/foo",
431 "node": "8d7c456572acf3557e8ed8a07286b10c408bcec5",
431 "node": "8d7c456572acf3557e8ed8a07286b10c408bcec5",
432 "tags": [],
432 "tags": [],
433 "user": "test"
433 "user": "test"
434 },
434 },
435 {
435 {
436 "bookmarks": [],
436 "bookmarks": [],
437 "date": [
437 "date": [
438 0.0,
438 0.0,
439 0
439 0
440 ],
440 ],
441 "desc": "modify foo",
441 "desc": "modify foo",
442 "node": "f8bbb9024b10f93cdbb8d940337398291d40dea8",
442 "node": "f8bbb9024b10f93cdbb8d940337398291d40dea8",
443 "tags": [],
443 "tags": [],
444 "user": "test"
444 "user": "test"
445 },
445 },
446 {
446 {
447 "bookmarks": [],
447 "bookmarks": [],
448 "date": [
448 "date": [
449 0.0,
449 0.0,
450 0
450 0
451 ],
451 ],
452 "desc": "initial",
452 "desc": "initial",
453 "node": "06e557f3edf66faa1ccaba5dd8c203c21cc79f1e",
453 "node": "06e557f3edf66faa1ccaba5dd8c203c21cc79f1e",
454 "tags": [],
454 "tags": [],
455 "user": "test"
455 "user": "test"
456 }
456 }
457 ],
457 ],
458 "node": "cc725e08502a79dd1eda913760fbe06ed7a9abc7"
458 "node": "cc725e08502a79dd1eda913760fbe06ed7a9abc7"
459 }
459 }
460
460
461 changeset/ renders the tip changeset
461 changeset/ renders the tip changeset
462
462
463 $ request json-rev
463 $ request json-rev
464 200 Script output follows
464 200 Script output follows
465
465
466 {
466 {
467 "bookmarks": [],
467 "bookmarks": [],
468 "branch": "default",
468 "branch": "default",
469 "date": [
469 "date": [
470 0.0,
470 0.0,
471 0
471 0
472 ],
472 ],
473 "desc": "merge test-branch into default",
473 "desc": "merge test-branch into default",
474 "node": "cc725e08502a79dd1eda913760fbe06ed7a9abc7",
474 "node": "cc725e08502a79dd1eda913760fbe06ed7a9abc7",
475 "parents": [
475 "parents": [
476 "ceed296fe500c3fac9541e31dad860cb49c89e45",
476 "ceed296fe500c3fac9541e31dad860cb49c89e45",
477 "ed66c30e87eb65337c05a4229efaa5f1d5285a90"
477 "ed66c30e87eb65337c05a4229efaa5f1d5285a90"
478 ],
478 ],
479 "phase": "draft",
479 "phase": "draft",
480 "tags": [
480 "tags": [
481 "tip"
481 "tip"
482 ],
482 ],
483 "user": "test"
483 "user": "test"
484 }
484 }
485
485
486 changeset/{revision} shows tags
486 changeset/{revision} shows tags
487
487
488 $ request json-rev/78896eb0e102
488 $ request json-rev/78896eb0e102
489 200 Script output follows
489 200 Script output follows
490
490
491 {
491 {
492 "bookmarks": [],
492 "bookmarks": [],
493 "branch": "default",
493 "branch": "default",
494 "date": [
494 "date": [
495 0.0,
495 0.0,
496 0
496 0
497 ],
497 ],
498 "desc": "move foo",
498 "desc": "move foo",
499 "node": "78896eb0e102174ce9278438a95e12543e4367a7",
499 "node": "78896eb0e102174ce9278438a95e12543e4367a7",
500 "parents": [
500 "parents": [
501 "8d7c456572acf3557e8ed8a07286b10c408bcec5"
501 "8d7c456572acf3557e8ed8a07286b10c408bcec5"
502 ],
502 ],
503 "phase": "public",
503 "phase": "public",
504 "tags": [
504 "tags": [
505 "tag1"
505 "tag1"
506 ],
506 ],
507 "user": "test"
507 "user": "test"
508 }
508 }
509
509
510 changeset/{revision} shows bookmarks
510 changeset/{revision} shows bookmarks
511
511
512 $ request json-rev/8d7c456572ac
512 $ request json-rev/8d7c456572ac
513 200 Script output follows
513 200 Script output follows
514
514
515 {
515 {
516 "bookmarks": [
516 "bookmarks": [
517 "bookmark1"
517 "bookmark1"
518 ],
518 ],
519 "branch": "default",
519 "branch": "default",
520 "date": [
520 "date": [
521 0.0,
521 0.0,
522 0
522 0
523 ],
523 ],
524 "desc": "modify da/foo",
524 "desc": "modify da/foo",
525 "node": "8d7c456572acf3557e8ed8a07286b10c408bcec5",
525 "node": "8d7c456572acf3557e8ed8a07286b10c408bcec5",
526 "parents": [
526 "parents": [
527 "f8bbb9024b10f93cdbb8d940337398291d40dea8"
527 "f8bbb9024b10f93cdbb8d940337398291d40dea8"
528 ],
528 ],
529 "phase": "public",
529 "phase": "public",
530 "tags": [],
530 "tags": [],
531 "user": "test"
531 "user": "test"
532 }
532 }
533
533
534 changeset/{revision} shows branches
534 changeset/{revision} shows branches
535
535
536 $ request json-rev/6ab967a8ab34
536 $ request json-rev/6ab967a8ab34
537 200 Script output follows
537 200 Script output follows
538
538
539 {
539 {
540 "bookmarks": [],
540 "bookmarks": [],
541 "branch": "test-branch",
541 "branch": "test-branch",
542 "date": [
542 "date": [
543 0.0,
543 0.0,
544 0
544 0
545 ],
545 ],
546 "desc": "create test branch",
546 "desc": "create test branch",
547 "node": "6ab967a8ab3489227a83f80e920faa039a71819f",
547 "node": "6ab967a8ab3489227a83f80e920faa039a71819f",
548 "parents": [
548 "parents": [
549 "06e557f3edf66faa1ccaba5dd8c203c21cc79f1e"
549 "06e557f3edf66faa1ccaba5dd8c203c21cc79f1e"
550 ],
550 ],
551 "phase": "draft",
551 "phase": "draft",
552 "tags": [],
552 "tags": [],
553 "user": "test"
553 "user": "test"
554 }
554 }
555
555
556 manifest/{revision}/{path} shows info about a directory at a revision
556 manifest/{revision}/{path} shows info about a directory at a revision
557
557
558 $ request json-manifest/06e557f3edf6/
558 $ request json-manifest/06e557f3edf6/
559 200 Script output follows
559 200 Script output follows
560
560
561 {
561 {
562 "abspath": "/",
562 "abspath": "/",
563 "bookmarks": [],
563 "bookmarks": [],
564 "directories": [
564 "directories": [
565 {
565 {
566 "abspath": "/da",
566 "abspath": "/da",
567 "basename": "da",
567 "basename": "da",
568 "emptydirs": ""
568 "emptydirs": ""
569 }
569 }
570 ],
570 ],
571 "files": [
571 "files": [
572 {
572 {
573 "abspath": "foo",
573 "abspath": "foo",
574 "basename": "foo",
574 "basename": "foo",
575 "date": [
575 "date": [
576 0.0,
576 0.0,
577 0
577 0
578 ],
578 ],
579 "flags": "",
579 "flags": "",
580 "size": 4
580 "size": 4
581 }
581 }
582 ],
582 ],
583 "node": "06e557f3edf66faa1ccaba5dd8c203c21cc79f1e",
583 "node": "06e557f3edf66faa1ccaba5dd8c203c21cc79f1e",
584 "tags": []
584 "tags": []
585 }
585 }
586
586
587 tags/ shows tags info
587 tags/ shows tags info
588
588
589 $ request json-tags
589 $ request json-tags
590 200 Script output follows
590 200 Script output follows
591
591
592 {
592 {
593 "node": "cc725e08502a79dd1eda913760fbe06ed7a9abc7",
593 "node": "cc725e08502a79dd1eda913760fbe06ed7a9abc7",
594 "tags": [
594 "tags": [
595 {
595 {
596 "date": [
596 "date": [
597 0.0,
597 0.0,
598 0
598 0
599 ],
599 ],
600 "node": "f2890a05fea49bfaf9fb27ed5490894eba32da78",
600 "node": "f2890a05fea49bfaf9fb27ed5490894eba32da78",
601 "tag": "tag2"
601 "tag": "tag2"
602 },
602 },
603 {
603 {
604 "date": [
604 "date": [
605 0.0,
605 0.0,
606 0
606 0
607 ],
607 ],
608 "node": "78896eb0e102174ce9278438a95e12543e4367a7",
608 "node": "78896eb0e102174ce9278438a95e12543e4367a7",
609 "tag": "tag1"
609 "tag": "tag1"
610 }
610 }
611 ]
611 ]
612 }
612 }
613
613
614 bookmarks/ shows bookmarks info
614 bookmarks/ shows bookmarks info
615
615
616 $ request json-bookmarks
616 $ request json-bookmarks
617 200 Script output follows
617 200 Script output follows
618
618
619 {
619 {
620 "bookmarks": [
620 "bookmarks": [
621 {
621 {
622 "bookmark": "bookmark1",
622 "bookmark": "bookmark1",
623 "date": [
623 "date": [
624 0.0,
624 0.0,
625 0
625 0
626 ],
626 ],
627 "node": "8d7c456572acf3557e8ed8a07286b10c408bcec5"
627 "node": "8d7c456572acf3557e8ed8a07286b10c408bcec5"
628 },
628 },
629 {
629 {
630 "bookmark": "bookmark2",
630 "bookmark": "bookmark2",
631 "date": [
631 "date": [
632 0.0,
632 0.0,
633 0
633 0
634 ],
634 ],
635 "node": "ceed296fe500c3fac9541e31dad860cb49c89e45"
635 "node": "ceed296fe500c3fac9541e31dad860cb49c89e45"
636 }
636 }
637 ],
637 ],
638 "node": "cc725e08502a79dd1eda913760fbe06ed7a9abc7"
638 "node": "cc725e08502a79dd1eda913760fbe06ed7a9abc7"
639 }
639 }
640
640
641 branches/ shows branches info
641 branches/ shows branches info
642
642
643 $ request json-branches
643 $ request json-branches
644 200 Script output follows
644 200 Script output follows
645
645
646 {
646 {
647 "branches": [
647 "branches": [
648 {
648 {
649 "branch": "default",
649 "branch": "default",
650 "date": [
650 "date": [
651 0.0,
651 0.0,
652 0
652 0
653 ],
653 ],
654 "node": "cc725e08502a79dd1eda913760fbe06ed7a9abc7",
654 "node": "cc725e08502a79dd1eda913760fbe06ed7a9abc7",
655 "status": "open"
655 "status": "open"
656 },
656 },
657 {
657 {
658 "branch": "test-branch",
658 "branch": "test-branch",
659 "date": [
659 "date": [
660 0.0,
660 0.0,
661 0
661 0
662 ],
662 ],
663 "node": "ed66c30e87eb65337c05a4229efaa5f1d5285a90",
663 "node": "ed66c30e87eb65337c05a4229efaa5f1d5285a90",
664 "status": "inactive"
664 "status": "inactive"
665 }
665 }
666 ]
666 ]
667 }
667 }
668
668
669 summary/ shows a summary of repository state
669 summary/ shows a summary of repository state
670
670
671 $ request json-summary
671 $ request json-summary
672 200 Script output follows
672 200 Script output follows
673
673
674 "not yet implemented"
674 "not yet implemented"
675
675
676 filediff/{revision}/{path} shows changes to a file in a revision
676 filediff/{revision}/{path} shows changes to a file in a revision
677
677
678 $ request json-diff/f8bbb9024b10/foo
678 $ request json-diff/f8bbb9024b10/foo
679 200 Script output follows
679 200 Script output follows
680
680
681 "not yet implemented"
681 "not yet implemented"
682
682
683 comparison/{revision}/{path} shows information about before and after for a file
683 comparison/{revision}/{path} shows information about before and after for a file
684
684
685 $ request json-comparison/f8bbb9024b10/foo
685 $ request json-comparison/f8bbb9024b10/foo
686 200 Script output follows
686 200 Script output follows
687
687
688 "not yet implemented"
688 "not yet implemented"
689
689
690 annotate/{revision}/{path} shows annotations for each line
690 annotate/{revision}/{path} shows annotations for each line
691
691
692 $ request json-annotate/f8bbb9024b10/foo
692 $ request json-annotate/f8bbb9024b10/foo
693 200 Script output follows
693 200 Script output follows
694
694
695 "not yet implemented"
695 "not yet implemented"
696
696
697 filelog/{revision}/{path} shows history of a single file
697 filelog/{revision}/{path} shows history of a single file
698
698
699 $ request json-filelog/f8bbb9024b10/foo
699 $ request json-filelog/f8bbb9024b10/foo
700 200 Script output follows
700 200 Script output follows
701
701
702 "not yet implemented"
702 "not yet implemented"
703
703
704 (archive/ doesn't use templating, so ignore it)
704 (archive/ doesn't use templating, so ignore it)
705
705
706 (static/ doesn't use templating, so ignore it)
706 (static/ doesn't use templating, so ignore it)
707
707
708 graph/ shows information that can be used to render a graph of the DAG
708 graph/ shows information that can be used to render a graph of the DAG
709
709
710 $ request json-graph
710 $ request json-graph
711 200 Script output follows
711 200 Script output follows
712
712
713 "not yet implemented"
713 "not yet implemented"
714
714
715 help/ shows help topics
715 help/ shows help topics
716
716
717 $ request json-help
717 $ request json-help
718 200 Script output follows
718 200 Script output follows
719
719
720 "not yet implemented"
720 {
721 "earlycommands": [
722 {
723 "summary": "add the specified files on the next commit",
724 "topic": "add"
725 },
726 {
727 "summary": "show changeset information by line for each file",
728 "topic": "annotate"
729 },
730 {
731 "summary": "make a copy of an existing repository",
732 "topic": "clone"
733 },
734 {
735 "summary": "commit the specified files or all outstanding changes",
736 "topic": "commit"
737 },
738 {
739 "summary": "diff repository (or selected files)",
740 "topic": "diff"
741 },
742 {
743 "summary": "dump the header and diffs for one or more changesets",
744 "topic": "export"
745 },
746 {
747 "summary": "forget the specified files on the next commit",
748 "topic": "forget"
749 },
750 {
751 "summary": "create a new repository in the given directory",
752 "topic": "init"
753 },
754 {
755 "summary": "show revision history of entire repository or files",
756 "topic": "log"
757 },
758 {
759 "summary": "merge another revision into working directory",
760 "topic": "merge"
761 },
762 {
763 "summary": "pull changes from the specified source",
764 "topic": "pull"
765 },
766 {
767 "summary": "push changes to the specified destination",
768 "topic": "push"
769 },
770 {
771 "summary": "remove the specified files on the next commit",
772 "topic": "remove"
773 },
774 {
775 "summary": "start stand-alone webserver",
776 "topic": "serve"
777 },
778 {
779 "summary": "show changed files in the working directory",
780 "topic": "status"
781 },
782 {
783 "summary": "summarize working directory state",
784 "topic": "summary"
785 },
786 {
787 "summary": "update working directory (or switch revisions)",
788 "topic": "update"
789 }
790 ],
791 "othercommands": [
792 {
793 "summary": "add all new files, delete all missing files",
794 "topic": "addremove"
795 },
796 {
797 "summary": "create an unversioned archive of a repository revision",
798 "topic": "archive"
799 },
800 {
801 "summary": "reverse effect of earlier changeset",
802 "topic": "backout"
803 },
804 {
805 "summary": "subdivision search of changesets",
806 "topic": "bisect"
807 },
808 {
809 "summary": "create a new bookmark or list existing bookmarks",
810 "topic": "bookmarks"
811 },
812 {
813 "summary": "set or show the current branch name",
814 "topic": "branch"
815 },
816 {
817 "summary": "list repository named branches",
818 "topic": "branches"
819 },
820 {
821 "summary": "create a changegroup file",
822 "topic": "bundle"
823 },
824 {
825 "summary": "output the current or given revision of files",
826 "topic": "cat"
827 },
828 {
829 "summary": "show combined config settings from all hgrc files",
830 "topic": "config"
831 },
832 {
833 "summary": "mark files as copied for the next commit",
834 "topic": "copy"
835 },
836 {
837 "summary": "list tracked files",
838 "topic": "files"
839 },
840 {
841 "summary": "copy changes from other branches onto the current branch",
842 "topic": "graft"
843 },
844 {
845 "summary": "search for a pattern in specified files and revisions",
846 "topic": "grep"
847 },
848 {
849 "summary": "show branch heads",
850 "topic": "heads"
851 },
852 {
853 "summary": "show help for a given topic or a help overview",
854 "topic": "help"
855 },
856 {
857 "summary": "identify the working directory or specified revision",
858 "topic": "identify"
859 },
860 {
861 "summary": "import an ordered set of patches",
862 "topic": "import"
863 },
864 {
865 "summary": "show new changesets found in source",
866 "topic": "incoming"
867 },
868 {
869 "summary": "output the current or given revision of the project manifest",
870 "topic": "manifest"
871 },
872 {
873 "summary": "show changesets not found in the destination",
874 "topic": "outgoing"
875 },
876 {
877 "summary": "show aliases for remote repositories",
878 "topic": "paths"
879 },
880 {
881 "summary": "set or show the current phase name",
882 "topic": "phase"
883 },
884 {
885 "summary": "roll back an interrupted transaction",
886 "topic": "recover"
887 },
888 {
889 "summary": "rename files; equivalent of copy + remove",
890 "topic": "rename"
891 },
892 {
893 "summary": "redo merges or set/view the merge status of files",
894 "topic": "resolve"
895 },
896 {
897 "summary": "restore files to their checkout state",
898 "topic": "revert"
899 },
900 {
901 "summary": "print the root (top) of the current working directory",
902 "topic": "root"
903 },
904 {
905 "summary": "add one or more tags for the current or given revision",
906 "topic": "tag"
907 },
908 {
909 "summary": "list repository tags",
910 "topic": "tags"
911 },
912 {
913 "summary": "apply one or more changegroup files",
914 "topic": "unbundle"
915 },
916 {
917 "summary": "verify the integrity of the repository",
918 "topic": "verify"
919 },
920 {
921 "summary": "output version and copyright information",
922 "topic": "version"
923 }
924 ],
925 "topics": [
926 {
927 "summary": "Configuration Files",
928 "topic": "config"
929 },
930 {
931 "summary": "Date Formats",
932 "topic": "dates"
933 },
934 {
935 "summary": "Diff Formats",
936 "topic": "diffs"
937 },
938 {
939 "summary": "Environment Variables",
940 "topic": "environment"
941 },
942 {
943 "summary": "Using Additional Features",
944 "topic": "extensions"
945 },
946 {
947 "summary": "Specifying File Sets",
948 "topic": "filesets"
949 },
950 {
951 "summary": "Glossary",
952 "topic": "glossary"
953 },
954 {
955 "summary": "Syntax for Mercurial Ignore Files",
956 "topic": "hgignore"
957 },
958 {
959 "summary": "Configuring hgweb",
960 "topic": "hgweb"
961 },
962 {
963 "summary": "Merge Tools",
964 "topic": "merge-tools"
965 },
966 {
967 "summary": "Specifying Multiple Revisions",
968 "topic": "multirevs"
969 },
970 {
971 "summary": "File Name Patterns",
972 "topic": "patterns"
973 },
974 {
975 "summary": "Working with Phases",
976 "topic": "phases"
977 },
978 {
979 "summary": "Specifying Single Revisions",
980 "topic": "revisions"
981 },
982 {
983 "summary": "Specifying Revision Sets",
984 "topic": "revsets"
985 },
986 {
987 "summary": "Subrepositories",
988 "topic": "subrepos"
989 },
990 {
991 "summary": "Template Usage",
992 "topic": "templating"
993 },
994 {
995 "summary": "URL Paths",
996 "topic": "urls"
997 }
998 ]
999 }
721
1000
722 help/{topic} shows an individual help topic
1001 help/{topic} shows an individual help topic
723
1002
724 $ request json-help/phases
1003 $ request json-help/phases
725 200 Script output follows
1004 200 Script output follows
726
1005
727 "not yet implemented"
1006 "not yet implemented"
General Comments 0
You need to be logged in to leave comments. Login now