##// END OF EJS Templates
templates: add support for filelog webcommand in json style...
Laura Médioni -
r29380:c1b526f5 default
parent child Browse files
Show More
@@ -1,184 +1,189
1 1 mimetype = 'application/json'
2 2 filerevision = '"not yet implemented"'
3 3 search = '"not yet implemented"'
4 4 # changelog and shortlog are the same web API but with different
5 5 # number of entries.
6 6 changelog = changelist.tmpl
7 7 shortlog = changelist.tmpl
8 8 changelistentry = '\{
9 9 "node": {node|json},
10 10 "date": {date|json},
11 11 "desc": {desc|utf8|json},
12 "branch": {if(branch, branch%changesetbranch, "default"|json)},
12 13 "bookmarks": [{join(bookmarks%changelistentryname, ", ")}],
13 14 "tags": [{join(tags%changelistentryname, ", ")}],
14 15 "user": {author|utf8|json},
15 "parents": [{join(allparents%changesetparent, ", ")}]
16 "phase": {phase|json},
17 "parents": [{if(allparents, join(allparents%changesetparent, ", "),
18 join(parent%changesetparent, ", "))}]
16 19 }'
17 20 changelistentryname = '{name|utf8|json}'
18 21 changeset = '\{
19 22 "node": {node|json},
20 23 "date": {date|json},
21 24 "desc": {desc|utf8|json},
22 25 "branch": {if(branch, branch%changesetbranch, "default"|json)},
23 26 "bookmarks": [{join(changesetbookmark, ", ")}],
24 27 "tags": [{join(changesettag, ", ")}],
25 28 "user": {author|utf8|json},
26 29 "parents": [{join(parent%changesetparent, ", ")}],
27 30 "phase": {phase|json}
28 31 }'
29 32 changesetbranch = '{name|utf8|json}'
30 33 changesetbookmark = '{bookmark|utf8|json}'
31 34 changesettag = '{tag|utf8|json}'
32 35 changesetparent = '{node|json}'
33 36 manifest = '\{
34 37 "node": {node|json},
35 38 "abspath": {path|json},
36 39 "directories": [{join(dentries%direntry, ", ")}],
37 40 "files": [{join(fentries%fileentry, ", ")}],
38 41 "bookmarks": [{join(bookmarks%name, ", ")}],
39 42 "tags": [{join(tags%name, ", ")}]
40 43 }'
41 44 name = '{name|utf8|json}'
42 45 direntry = '\{
43 46 "abspath": {path|json},
44 47 "basename": {basename|json},
45 48 "emptydirs": {emptydirs|json}
46 49 }'
47 50 fileentry = '\{
48 51 "abspath": {file|json},
49 52 "basename": {basename|json},
50 53 "date": {date|json},
51 54 "size": {size|json},
52 55 "flags": {permissions|json}
53 56 }'
54 57 tags = '\{
55 58 "node": {node|json},
56 59 "tags": [{join(entriesnotip%tagentry, ", ")}]
57 60 }'
58 61 tagentry = '\{
59 62 "tag": {tag|utf8|json},
60 63 "node": {node|json},
61 64 "date": {date|json}
62 65 }'
63 66 bookmarks = '\{
64 67 "node": {node|json},
65 68 "bookmarks": [{join(entries%bookmarkentry, ", ")}]
66 69 }'
67 70 bookmarkentry = '\{
68 71 "bookmark": {bookmark|utf8|json},
69 72 "node": {node|json},
70 73 "date": {date|json}
71 74 }'
72 75 branches = '\{
73 76 "branches": [{join(entries%branchentry, ", ")}]
74 77 }'
75 78 branchentry = '\{
76 79 "branch": {branch|utf8|json},
77 80 "node": {node|json},
78 81 "date": {date|json},
79 82 "status": {status|json}
80 83 }'
81 84 summary = '"not yet implemented"'
82 85 filediff = '\{
83 86 "path": {file|json},
84 87 "node": {node|json},
85 88 "date": {date|json},
86 89 "desc": {desc|utf8|json},
87 90 "author": {author|utf8|json},
88 91 "parents": [{join(parent%changesetparent, ", ")}],
89 92 "children": [{join(child%changesetparent, ", ")}],
90 93 "diff": [{join(diff%diffblock, ", ")}]
91 94 }'
92 95 diffblock = '\{
93 96 "blockno": {blockno|json},
94 97 "lines": [{join(lines, ", ")}]
95 98 }'
96 99 difflineplus = '\{
97 100 "t": "+",
98 101 "n": {lineno|json},
99 102 "l": {line|json}
100 103 }'
101 104 difflineminus = '\{
102 105 "t": "-",
103 106 "n": {lineno|json},
104 107 "l": {line|json}
105 108 }'
106 109 difflineat = '\{
107 110 "t": "@",
108 111 "n": {lineno|json},
109 112 "l": {line|json}
110 113 }'
111 114 diffline = '\{
112 115 "t": "",
113 116 "n": {lineno|json},
114 117 "l": {line|json}
115 118 }'
116 119 filecomparison = '\{
117 120 "path": {file|json},
118 121 "node": {node|json},
119 122 "date": {date|json},
120 123 "desc": {desc|utf8|json},
121 124 "author": {author|utf8|json},
122 125 "parents": [{join(parent%changesetparent, ", ")}],
123 126 "children": [{join(child%changesetparent, ", ")}],
124 127 "leftnode": {leftnode|json},
125 128 "rightnode": {rightnode|json},
126 129 "comparison": [{join(comparison, ", ")}]
127 130 }'
128 131 comparisonblock = '\{
129 132 "lines": [{join(lines, ", ")}]
130 133 }'
131 134 comparisonline = '\{
132 135 "t": {type|json},
133 136 "ln": {leftlineno|json},
134 137 "ll": {leftline|json},
135 138 "rn": {rightlineno|json},
136 139 "rl": {rightline|json}
137 140 }'
138 141 fileannotate = '\{
139 142 "abspath": {file|json},
140 143 "node": {node|json},
141 144 "author": {author|utf8|json},
142 145 "date": {date|json},
143 146 "desc": {desc|utf8|json},
144 147 "parents": [{join(parent%changesetparent, ", ")}],
145 148 "children": [{join(child%changesetparent, ", ")}],
146 149 "permissions": {permissions|json},
147 150 "annotate": [{join(annotate%fileannotation, ", ")}]
148 151 }'
149 152 fileannotation = '\{
150 153 "node": {node|json},
151 154 "author": {author|utf8|json},
152 155 "desc": {desc|utf8|json},
153 156 "abspath": {file|json},
154 157 "targetline": {targetline|json},
155 158 "line": {line|json},
156 159 "lineno": {lineno|json},
157 160 "revdate": {revdate|json}
158 161 }'
159 filelog = '"not yet implemented"'
162 filelog = '\{
163 "entries": [{join(entries%changelistentry, ", ")}]
164 }'
160 165 graph = '"not yet implemented"'
161 166 helptopics = '\{
162 167 "topics": [{join(topics%helptopicentry, ", ")}],
163 168 "earlycommands": [{join(earlycommands%helptopicentry, ", ")}],
164 169 "othercommands": [{join(othercommands%helptopicentry, ", ")}]
165 170 }'
166 171 helptopicentry = '\{
167 172 "topic": {topic|utf8|json},
168 173 "summary": {summary|utf8|json}
169 174 }'
170 175 help = '\{
171 176 "topic": {topic|utf8|json},
172 177 "rawdoc": {doc|utf8|json}
173 178 }'
174 179 filenodelink = ''
175 180 filenolink = ''
176 181 index = '\{
177 182 "entries": [{join(entries%indexentry, ", ")}]
178 183 }'
179 184 indexentry = '\{
180 185 "name": {name|utf8|json},
181 186 "description": {description|utf8|json},
182 187 "contact": {contact|utf8|json},
183 188 "lastchange": {lastchange|json}
184 189 }'
@@ -1,1180 +1,1315
1 1 #require serve
2 2
3 3 $ request() {
4 4 > get-with-headers.py --json localhost:$HGPORT "$1"
5 5 > }
6 6
7 7 $ hg init test
8 8 $ cd test
9 9 $ mkdir da
10 10 $ echo foo > da/foo
11 11 $ echo foo > foo
12 12 $ hg -q ci -A -m initial
13 13 $ echo bar > foo
14 14 $ hg ci -m 'modify foo'
15 15 $ echo bar > da/foo
16 16 $ hg ci -m 'modify da/foo'
17 17 $ hg bookmark bookmark1
18 18 $ hg up default
19 19 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
20 20 (leaving bookmark bookmark1)
21 21 $ hg mv foo foo-new
22 22 $ hg commit -m 'move foo'
23 23 $ hg tag -m 'create tag' tag1
24 24 $ hg phase --public -r .
25 25 $ echo baz > da/foo
26 26 $ hg commit -m 'another commit to da/foo'
27 27 $ hg tag -m 'create tag2' tag2
28 28 $ hg bookmark bookmark2
29 29 $ hg -q up -r 0
30 30 $ hg -q branch test-branch
31 31 $ echo branch > foo
32 32 $ hg commit -m 'create test branch'
33 33 $ echo branch_commit_2 > foo
34 34 $ hg commit -m 'another commit in test-branch'
35 35 $ hg -q up default
36 36 $ hg merge --tool :local test-branch
37 37 0 files updated, 1 files merged, 0 files removed, 0 files unresolved
38 38 (branch merge, don't forget to commit)
39 39 $ hg commit -m 'merge test-branch into default'
40 40
41 41 $ hg log -G
42 42 @ changeset: 9:cc725e08502a
43 43 |\ tag: tip
44 44 | | parent: 6:ceed296fe500
45 45 | | parent: 8:ed66c30e87eb
46 46 | | user: test
47 47 | | date: Thu Jan 01 00:00:00 1970 +0000
48 48 | | summary: merge test-branch into default
49 49 | |
50 50 | o changeset: 8:ed66c30e87eb
51 51 | | branch: test-branch
52 52 | | user: test
53 53 | | date: Thu Jan 01 00:00:00 1970 +0000
54 54 | | summary: another commit in test-branch
55 55 | |
56 56 | o changeset: 7:6ab967a8ab34
57 57 | | branch: test-branch
58 58 | | parent: 0:06e557f3edf6
59 59 | | user: test
60 60 | | date: Thu Jan 01 00:00:00 1970 +0000
61 61 | | summary: create test branch
62 62 | |
63 63 o | changeset: 6:ceed296fe500
64 64 | | bookmark: bookmark2
65 65 | | user: test
66 66 | | date: Thu Jan 01 00:00:00 1970 +0000
67 67 | | summary: create tag2
68 68 | |
69 69 o | changeset: 5:f2890a05fea4
70 70 | | tag: tag2
71 71 | | user: test
72 72 | | date: Thu Jan 01 00:00:00 1970 +0000
73 73 | | summary: another commit to da/foo
74 74 | |
75 75 o | changeset: 4:93a8ce14f891
76 76 | | user: test
77 77 | | date: Thu Jan 01 00:00:00 1970 +0000
78 78 | | summary: create tag
79 79 | |
80 80 o | changeset: 3:78896eb0e102
81 81 | | tag: tag1
82 82 | | user: test
83 83 | | date: Thu Jan 01 00:00:00 1970 +0000
84 84 | | summary: move foo
85 85 | |
86 86 o | changeset: 2:8d7c456572ac
87 87 | | bookmark: bookmark1
88 88 | | user: test
89 89 | | date: Thu Jan 01 00:00:00 1970 +0000
90 90 | | summary: modify da/foo
91 91 | |
92 92 o | changeset: 1:f8bbb9024b10
93 93 |/ user: test
94 94 | date: Thu Jan 01 00:00:00 1970 +0000
95 95 | summary: modify foo
96 96 |
97 97 o changeset: 0:06e557f3edf6
98 98 user: test
99 99 date: Thu Jan 01 00:00:00 1970 +0000
100 100 summary: initial
101 101
102 102
103 103 $ hg serve -p $HGPORT -d --pid-file=hg.pid -A access.log -E error.log
104 104 $ cat hg.pid >> $DAEMON_PIDS
105 105
106 106 (Try to keep these in roughly the order they are defined in webcommands.py)
107 107
108 108 (log is handled by filelog/ and changelog/ - ignore it)
109 109
110 110 (rawfile/ doesn't use templating - nothing to test)
111 111
112 112 file/{revision}/{path} shows file revision
113 113
114 114 $ request json-file/06e557f3edf6/foo
115 115 200 Script output follows
116 116
117 117 "not yet implemented"
118 118
119 119 file/{revision} shows root directory info
120 120
121 121 $ request json-file/cc725e08502a
122 122 200 Script output follows
123 123
124 124 {
125 125 "abspath": "/",
126 126 "bookmarks": [],
127 127 "directories": [
128 128 {
129 129 "abspath": "/da",
130 130 "basename": "da",
131 131 "emptydirs": ""
132 132 }
133 133 ],
134 134 "files": [
135 135 {
136 136 "abspath": ".hgtags",
137 137 "basename": ".hgtags",
138 138 "date": [
139 139 0.0,
140 140 0
141 141 ],
142 142 "flags": "",
143 143 "size": 92
144 144 },
145 145 {
146 146 "abspath": "foo-new",
147 147 "basename": "foo-new",
148 148 "date": [
149 149 0.0,
150 150 0
151 151 ],
152 152 "flags": "",
153 153 "size": 4
154 154 }
155 155 ],
156 156 "node": "cc725e08502a79dd1eda913760fbe06ed7a9abc7",
157 157 "tags": [
158 158 "tip"
159 159 ]
160 160 }
161 161
162 162 changelog/ shows information about several changesets
163 163
164 164 $ request json-changelog
165 165 200 Script output follows
166 166
167 167 {
168 168 "changeset_count": 10,
169 169 "changesets": [
170 170 {
171 171 "bookmarks": [],
172 "branch": "default",
172 173 "date": [
173 174 0.0,
174 175 0
175 176 ],
176 177 "desc": "merge test-branch into default",
177 178 "node": "cc725e08502a79dd1eda913760fbe06ed7a9abc7",
178 179 "parents": [
179 180 "ceed296fe500c3fac9541e31dad860cb49c89e45",
180 181 "ed66c30e87eb65337c05a4229efaa5f1d5285a90"
181 182 ],
183 "phase": "draft",
182 184 "tags": [
183 185 "tip"
184 186 ],
185 187 "user": "test"
186 188 },
187 189 {
188 190 "bookmarks": [],
191 "branch": "test-branch",
189 192 "date": [
190 193 0.0,
191 194 0
192 195 ],
193 196 "desc": "another commit in test-branch",
194 197 "node": "ed66c30e87eb65337c05a4229efaa5f1d5285a90",
195 198 "parents": [
196 199 "6ab967a8ab3489227a83f80e920faa039a71819f"
197 200 ],
201 "phase": "draft",
198 202 "tags": [],
199 203 "user": "test"
200 204 },
201 205 {
202 206 "bookmarks": [],
207 "branch": "test-branch",
203 208 "date": [
204 209 0.0,
205 210 0
206 211 ],
207 212 "desc": "create test branch",
208 213 "node": "6ab967a8ab3489227a83f80e920faa039a71819f",
209 214 "parents": [
210 215 "06e557f3edf66faa1ccaba5dd8c203c21cc79f1e"
211 216 ],
217 "phase": "draft",
212 218 "tags": [],
213 219 "user": "test"
214 220 },
215 221 {
216 222 "bookmarks": [
217 223 "bookmark2"
218 224 ],
225 "branch": "default",
219 226 "date": [
220 227 0.0,
221 228 0
222 229 ],
223 230 "desc": "create tag2",
224 231 "node": "ceed296fe500c3fac9541e31dad860cb49c89e45",
225 232 "parents": [
226 233 "f2890a05fea49bfaf9fb27ed5490894eba32da78"
227 234 ],
235 "phase": "draft",
228 236 "tags": [],
229 237 "user": "test"
230 238 },
231 239 {
232 240 "bookmarks": [],
241 "branch": "default",
233 242 "date": [
234 243 0.0,
235 244 0
236 245 ],
237 246 "desc": "another commit to da/foo",
238 247 "node": "f2890a05fea49bfaf9fb27ed5490894eba32da78",
239 248 "parents": [
240 249 "93a8ce14f89156426b7fa981af8042da53f03aa0"
241 250 ],
251 "phase": "draft",
242 252 "tags": [
243 253 "tag2"
244 254 ],
245 255 "user": "test"
246 256 },
247 257 {
248 258 "bookmarks": [],
259 "branch": "default",
249 260 "date": [
250 261 0.0,
251 262 0
252 263 ],
253 264 "desc": "create tag",
254 265 "node": "93a8ce14f89156426b7fa981af8042da53f03aa0",
255 266 "parents": [
256 267 "78896eb0e102174ce9278438a95e12543e4367a7"
257 268 ],
269 "phase": "public",
258 270 "tags": [],
259 271 "user": "test"
260 272 },
261 273 {
262 274 "bookmarks": [],
275 "branch": "default",
263 276 "date": [
264 277 0.0,
265 278 0
266 279 ],
267 280 "desc": "move foo",
268 281 "node": "78896eb0e102174ce9278438a95e12543e4367a7",
269 282 "parents": [
270 283 "8d7c456572acf3557e8ed8a07286b10c408bcec5"
271 284 ],
285 "phase": "public",
272 286 "tags": [
273 287 "tag1"
274 288 ],
275 289 "user": "test"
276 290 },
277 291 {
278 292 "bookmarks": [
279 293 "bookmark1"
280 294 ],
295 "branch": "default",
281 296 "date": [
282 297 0.0,
283 298 0
284 299 ],
285 300 "desc": "modify da/foo",
286 301 "node": "8d7c456572acf3557e8ed8a07286b10c408bcec5",
287 302 "parents": [
288 303 "f8bbb9024b10f93cdbb8d940337398291d40dea8"
289 304 ],
305 "phase": "public",
290 306 "tags": [],
291 307 "user": "test"
292 308 },
293 309 {
294 310 "bookmarks": [],
311 "branch": "default",
295 312 "date": [
296 313 0.0,
297 314 0
298 315 ],
299 316 "desc": "modify foo",
300 317 "node": "f8bbb9024b10f93cdbb8d940337398291d40dea8",
301 318 "parents": [
302 319 "06e557f3edf66faa1ccaba5dd8c203c21cc79f1e"
303 320 ],
321 "phase": "public",
304 322 "tags": [],
305 323 "user": "test"
306 324 },
307 325 {
308 326 "bookmarks": [],
327 "branch": "default",
309 328 "date": [
310 329 0.0,
311 330 0
312 331 ],
313 332 "desc": "initial",
314 333 "node": "06e557f3edf66faa1ccaba5dd8c203c21cc79f1e",
315 334 "parents": [],
335 "phase": "public",
316 336 "tags": [],
317 337 "user": "test"
318 338 }
319 339 ],
320 340 "node": "cc725e08502a79dd1eda913760fbe06ed7a9abc7"
321 341 }
322 342
323 343 changelog/{revision} shows information starting at a specific changeset
324 344
325 345 $ request json-changelog/f8bbb9024b10
326 346 200 Script output follows
327 347
328 348 {
329 349 "changeset_count": 10,
330 350 "changesets": [
331 351 {
332 352 "bookmarks": [],
353 "branch": "default",
333 354 "date": [
334 355 0.0,
335 356 0
336 357 ],
337 358 "desc": "modify foo",
338 359 "node": "f8bbb9024b10f93cdbb8d940337398291d40dea8",
339 360 "parents": [
340 361 "06e557f3edf66faa1ccaba5dd8c203c21cc79f1e"
341 362 ],
363 "phase": "public",
342 364 "tags": [],
343 365 "user": "test"
344 366 },
345 367 {
346 368 "bookmarks": [],
369 "branch": "default",
347 370 "date": [
348 371 0.0,
349 372 0
350 373 ],
351 374 "desc": "initial",
352 375 "node": "06e557f3edf66faa1ccaba5dd8c203c21cc79f1e",
353 376 "parents": [],
377 "phase": "public",
354 378 "tags": [],
355 379 "user": "test"
356 380 }
357 381 ],
358 382 "node": "f8bbb9024b10f93cdbb8d940337398291d40dea8"
359 383 }
360 384
361 385 shortlog/ shows information about a set of changesets
362 386
363 387 $ request json-shortlog
364 388 200 Script output follows
365 389
366 390 {
367 391 "changeset_count": 10,
368 392 "changesets": [
369 393 {
370 394 "bookmarks": [],
395 "branch": "default",
371 396 "date": [
372 397 0.0,
373 398 0
374 399 ],
375 400 "desc": "merge test-branch into default",
376 401 "node": "cc725e08502a79dd1eda913760fbe06ed7a9abc7",
377 402 "parents": [
378 403 "ceed296fe500c3fac9541e31dad860cb49c89e45",
379 404 "ed66c30e87eb65337c05a4229efaa5f1d5285a90"
380 405 ],
406 "phase": "draft",
381 407 "tags": [
382 408 "tip"
383 409 ],
384 410 "user": "test"
385 411 },
386 412 {
387 413 "bookmarks": [],
414 "branch": "test-branch",
388 415 "date": [
389 416 0.0,
390 417 0
391 418 ],
392 419 "desc": "another commit in test-branch",
393 420 "node": "ed66c30e87eb65337c05a4229efaa5f1d5285a90",
394 421 "parents": [
395 422 "6ab967a8ab3489227a83f80e920faa039a71819f"
396 423 ],
424 "phase": "draft",
397 425 "tags": [],
398 426 "user": "test"
399 427 },
400 428 {
401 429 "bookmarks": [],
430 "branch": "test-branch",
402 431 "date": [
403 432 0.0,
404 433 0
405 434 ],
406 435 "desc": "create test branch",
407 436 "node": "6ab967a8ab3489227a83f80e920faa039a71819f",
408 437 "parents": [
409 438 "06e557f3edf66faa1ccaba5dd8c203c21cc79f1e"
410 439 ],
440 "phase": "draft",
411 441 "tags": [],
412 442 "user": "test"
413 443 },
414 444 {
415 445 "bookmarks": [
416 446 "bookmark2"
417 447 ],
448 "branch": "default",
418 449 "date": [
419 450 0.0,
420 451 0
421 452 ],
422 453 "desc": "create tag2",
423 454 "node": "ceed296fe500c3fac9541e31dad860cb49c89e45",
424 455 "parents": [
425 456 "f2890a05fea49bfaf9fb27ed5490894eba32da78"
426 457 ],
458 "phase": "draft",
427 459 "tags": [],
428 460 "user": "test"
429 461 },
430 462 {
431 463 "bookmarks": [],
464 "branch": "default",
432 465 "date": [
433 466 0.0,
434 467 0
435 468 ],
436 469 "desc": "another commit to da/foo",
437 470 "node": "f2890a05fea49bfaf9fb27ed5490894eba32da78",
438 471 "parents": [
439 472 "93a8ce14f89156426b7fa981af8042da53f03aa0"
440 473 ],
474 "phase": "draft",
441 475 "tags": [
442 476 "tag2"
443 477 ],
444 478 "user": "test"
445 479 },
446 480 {
447 481 "bookmarks": [],
482 "branch": "default",
448 483 "date": [
449 484 0.0,
450 485 0
451 486 ],
452 487 "desc": "create tag",
453 488 "node": "93a8ce14f89156426b7fa981af8042da53f03aa0",
454 489 "parents": [
455 490 "78896eb0e102174ce9278438a95e12543e4367a7"
456 491 ],
492 "phase": "public",
457 493 "tags": [],
458 494 "user": "test"
459 495 },
460 496 {
461 497 "bookmarks": [],
498 "branch": "default",
462 499 "date": [
463 500 0.0,
464 501 0
465 502 ],
466 503 "desc": "move foo",
467 504 "node": "78896eb0e102174ce9278438a95e12543e4367a7",
468 505 "parents": [
469 506 "8d7c456572acf3557e8ed8a07286b10c408bcec5"
470 507 ],
508 "phase": "public",
471 509 "tags": [
472 510 "tag1"
473 511 ],
474 512 "user": "test"
475 513 },
476 514 {
477 515 "bookmarks": [
478 516 "bookmark1"
479 517 ],
518 "branch": "default",
480 519 "date": [
481 520 0.0,
482 521 0
483 522 ],
484 523 "desc": "modify da/foo",
485 524 "node": "8d7c456572acf3557e8ed8a07286b10c408bcec5",
486 525 "parents": [
487 526 "f8bbb9024b10f93cdbb8d940337398291d40dea8"
488 527 ],
528 "phase": "public",
489 529 "tags": [],
490 530 "user": "test"
491 531 },
492 532 {
493 533 "bookmarks": [],
534 "branch": "default",
494 535 "date": [
495 536 0.0,
496 537 0
497 538 ],
498 539 "desc": "modify foo",
499 540 "node": "f8bbb9024b10f93cdbb8d940337398291d40dea8",
500 541 "parents": [
501 542 "06e557f3edf66faa1ccaba5dd8c203c21cc79f1e"
502 543 ],
544 "phase": "public",
503 545 "tags": [],
504 546 "user": "test"
505 547 },
506 548 {
507 549 "bookmarks": [],
550 "branch": "default",
508 551 "date": [
509 552 0.0,
510 553 0
511 554 ],
512 555 "desc": "initial",
513 556 "node": "06e557f3edf66faa1ccaba5dd8c203c21cc79f1e",
514 557 "parents": [],
558 "phase": "public",
515 559 "tags": [],
516 560 "user": "test"
517 561 }
518 562 ],
519 563 "node": "cc725e08502a79dd1eda913760fbe06ed7a9abc7"
520 564 }
521 565
522 566 changeset/ renders the tip changeset
523 567
524 568 $ request json-rev
525 569 200 Script output follows
526 570
527 571 {
528 572 "bookmarks": [],
529 573 "branch": "default",
530 574 "date": [
531 575 0.0,
532 576 0
533 577 ],
534 578 "desc": "merge test-branch into default",
535 579 "node": "cc725e08502a79dd1eda913760fbe06ed7a9abc7",
536 580 "parents": [
537 581 "ceed296fe500c3fac9541e31dad860cb49c89e45",
538 582 "ed66c30e87eb65337c05a4229efaa5f1d5285a90"
539 583 ],
540 584 "phase": "draft",
541 585 "tags": [
542 586 "tip"
543 587 ],
544 588 "user": "test"
545 589 }
546 590
547 591 changeset/{revision} shows tags
548 592
549 593 $ request json-rev/78896eb0e102
550 594 200 Script output follows
551 595
552 596 {
553 597 "bookmarks": [],
554 598 "branch": "default",
555 599 "date": [
556 600 0.0,
557 601 0
558 602 ],
559 603 "desc": "move foo",
560 604 "node": "78896eb0e102174ce9278438a95e12543e4367a7",
561 605 "parents": [
562 606 "8d7c456572acf3557e8ed8a07286b10c408bcec5"
563 607 ],
564 608 "phase": "public",
565 609 "tags": [
566 610 "tag1"
567 611 ],
568 612 "user": "test"
569 613 }
570 614
571 615 changeset/{revision} shows bookmarks
572 616
573 617 $ request json-rev/8d7c456572ac
574 618 200 Script output follows
575 619
576 620 {
577 621 "bookmarks": [
578 622 "bookmark1"
579 623 ],
580 624 "branch": "default",
581 625 "date": [
582 626 0.0,
583 627 0
584 628 ],
585 629 "desc": "modify da/foo",
586 630 "node": "8d7c456572acf3557e8ed8a07286b10c408bcec5",
587 631 "parents": [
588 632 "f8bbb9024b10f93cdbb8d940337398291d40dea8"
589 633 ],
590 634 "phase": "public",
591 635 "tags": [],
592 636 "user": "test"
593 637 }
594 638
595 639 changeset/{revision} shows branches
596 640
597 641 $ request json-rev/6ab967a8ab34
598 642 200 Script output follows
599 643
600 644 {
601 645 "bookmarks": [],
602 646 "branch": "test-branch",
603 647 "date": [
604 648 0.0,
605 649 0
606 650 ],
607 651 "desc": "create test branch",
608 652 "node": "6ab967a8ab3489227a83f80e920faa039a71819f",
609 653 "parents": [
610 654 "06e557f3edf66faa1ccaba5dd8c203c21cc79f1e"
611 655 ],
612 656 "phase": "draft",
613 657 "tags": [],
614 658 "user": "test"
615 659 }
616 660
617 661 manifest/{revision}/{path} shows info about a directory at a revision
618 662
619 663 $ request json-manifest/06e557f3edf6/
620 664 200 Script output follows
621 665
622 666 {
623 667 "abspath": "/",
624 668 "bookmarks": [],
625 669 "directories": [
626 670 {
627 671 "abspath": "/da",
628 672 "basename": "da",
629 673 "emptydirs": ""
630 674 }
631 675 ],
632 676 "files": [
633 677 {
634 678 "abspath": "foo",
635 679 "basename": "foo",
636 680 "date": [
637 681 0.0,
638 682 0
639 683 ],
640 684 "flags": "",
641 685 "size": 4
642 686 }
643 687 ],
644 688 "node": "06e557f3edf66faa1ccaba5dd8c203c21cc79f1e",
645 689 "tags": []
646 690 }
647 691
648 692 tags/ shows tags info
649 693
650 694 $ request json-tags
651 695 200 Script output follows
652 696
653 697 {
654 698 "node": "cc725e08502a79dd1eda913760fbe06ed7a9abc7",
655 699 "tags": [
656 700 {
657 701 "date": [
658 702 0.0,
659 703 0
660 704 ],
661 705 "node": "f2890a05fea49bfaf9fb27ed5490894eba32da78",
662 706 "tag": "tag2"
663 707 },
664 708 {
665 709 "date": [
666 710 0.0,
667 711 0
668 712 ],
669 713 "node": "78896eb0e102174ce9278438a95e12543e4367a7",
670 714 "tag": "tag1"
671 715 }
672 716 ]
673 717 }
674 718
675 719 bookmarks/ shows bookmarks info
676 720
677 721 $ request json-bookmarks
678 722 200 Script output follows
679 723
680 724 {
681 725 "bookmarks": [
682 726 {
683 727 "bookmark": "bookmark2",
684 728 "date": [
685 729 0.0,
686 730 0
687 731 ],
688 732 "node": "ceed296fe500c3fac9541e31dad860cb49c89e45"
689 733 },
690 734 {
691 735 "bookmark": "bookmark1",
692 736 "date": [
693 737 0.0,
694 738 0
695 739 ],
696 740 "node": "8d7c456572acf3557e8ed8a07286b10c408bcec5"
697 741 }
698 742 ],
699 743 "node": "cc725e08502a79dd1eda913760fbe06ed7a9abc7"
700 744 }
701 745
702 746 branches/ shows branches info
703 747
704 748 $ request json-branches
705 749 200 Script output follows
706 750
707 751 {
708 752 "branches": [
709 753 {
710 754 "branch": "default",
711 755 "date": [
712 756 0.0,
713 757 0
714 758 ],
715 759 "node": "cc725e08502a79dd1eda913760fbe06ed7a9abc7",
716 760 "status": "open"
717 761 },
718 762 {
719 763 "branch": "test-branch",
720 764 "date": [
721 765 0.0,
722 766 0
723 767 ],
724 768 "node": "ed66c30e87eb65337c05a4229efaa5f1d5285a90",
725 769 "status": "inactive"
726 770 }
727 771 ]
728 772 }
729 773
730 774 summary/ shows a summary of repository state
731 775
732 776 $ request json-summary
733 777 200 Script output follows
734 778
735 779 "not yet implemented"
736 780
737 781 filediff/{revision}/{path} shows changes to a file in a revision
738 782
739 783 $ request json-diff/f8bbb9024b10/foo
740 784 200 Script output follows
741 785
742 786 {
743 787 "author": "test",
744 788 "children": [],
745 789 "date": [
746 790 0.0,
747 791 0
748 792 ],
749 793 "desc": "modify foo",
750 794 "diff": [
751 795 {
752 796 "blockno": 1,
753 797 "lines": [
754 798 {
755 799 "l": "--- a/foo\tThu Jan 01 00:00:00 1970 +0000\n",
756 800 "n": 1,
757 801 "t": "-"
758 802 },
759 803 {
760 804 "l": "+++ b/foo\tThu Jan 01 00:00:00 1970 +0000\n",
761 805 "n": 2,
762 806 "t": "+"
763 807 },
764 808 {
765 809 "l": "@@ -1,1 +1,1 @@\n",
766 810 "n": 3,
767 811 "t": "@"
768 812 },
769 813 {
770 814 "l": "-foo\n",
771 815 "n": 4,
772 816 "t": "-"
773 817 },
774 818 {
775 819 "l": "+bar\n",
776 820 "n": 5,
777 821 "t": "+"
778 822 }
779 823 ]
780 824 }
781 825 ],
782 826 "node": "f8bbb9024b10f93cdbb8d940337398291d40dea8",
783 827 "parents": [
784 828 "06e557f3edf66faa1ccaba5dd8c203c21cc79f1e"
785 829 ],
786 830 "path": "foo"
787 831 }
788 832
789 833 comparison/{revision}/{path} shows information about before and after for a file
790 834
791 835 $ request json-comparison/f8bbb9024b10/foo
792 836 200 Script output follows
793 837
794 838 {
795 839 "author": "test",
796 840 "children": [],
797 841 "comparison": [
798 842 {
799 843 "lines": [
800 844 {
801 845 "ll": "foo",
802 846 "ln": 1,
803 847 "rl": "bar",
804 848 "rn": 1,
805 849 "t": "replace"
806 850 }
807 851 ]
808 852 }
809 853 ],
810 854 "date": [
811 855 0.0,
812 856 0
813 857 ],
814 858 "desc": "modify foo",
815 859 "leftnode": "06e557f3edf66faa1ccaba5dd8c203c21cc79f1e",
816 860 "node": "f8bbb9024b10f93cdbb8d940337398291d40dea8",
817 861 "parents": [
818 862 "06e557f3edf66faa1ccaba5dd8c203c21cc79f1e"
819 863 ],
820 864 "path": "foo",
821 865 "rightnode": "f8bbb9024b10f93cdbb8d940337398291d40dea8"
822 866 }
823 867
824 868 annotate/{revision}/{path} shows annotations for each line
825 869
826 870 $ request json-annotate/f8bbb9024b10/foo
827 871 200 Script output follows
828 872
829 873 {
830 874 "abspath": "foo",
831 875 "annotate": [
832 876 {
833 877 "abspath": "foo",
834 878 "author": "test",
835 879 "desc": "modify foo",
836 880 "line": "bar\n",
837 881 "lineno": 1,
838 882 "node": "f8bbb9024b10f93cdbb8d940337398291d40dea8",
839 883 "revdate": [
840 884 0.0,
841 885 0
842 886 ],
843 887 "targetline": 1
844 888 }
845 889 ],
846 890 "author": "test",
847 891 "children": [],
848 892 "date": [
849 893 0.0,
850 894 0
851 895 ],
852 896 "desc": "modify foo",
853 897 "node": "f8bbb9024b10f93cdbb8d940337398291d40dea8",
854 898 "parents": [
855 899 "06e557f3edf66faa1ccaba5dd8c203c21cc79f1e"
856 900 ],
857 901 "permissions": ""
858 902 }
859 903
860 904 filelog/{revision}/{path} shows history of a single file
861 905
862 906 $ request json-filelog/f8bbb9024b10/foo
863 907 200 Script output follows
864 908
865 "not yet implemented"
909 {
910 "entries": [
911 {
912 "bookmarks": [],
913 "branch": "default",
914 "date": [
915 0.0,
916 0
917 ],
918 "desc": "modify foo",
919 "node": "f8bbb9024b10f93cdbb8d940337398291d40dea8",
920 "parents": [
921 "06e557f3edf66faa1ccaba5dd8c203c21cc79f1e"
922 ],
923 "phase": "public",
924 "tags": [],
925 "user": "test"
926 },
927 {
928 "bookmarks": [],
929 "branch": "default",
930 "date": [
931 0.0,
932 0
933 ],
934 "desc": "initial",
935 "node": "06e557f3edf66faa1ccaba5dd8c203c21cc79f1e",
936 "parents": [],
937 "phase": "public",
938 "tags": [],
939 "user": "test"
940 }
941 ]
942 }
943
944 $ request json-filelog/cc725e08502a/da/foo
945 200 Script output follows
946
947 {
948 "entries": [
949 {
950 "bookmarks": [],
951 "branch": "default",
952 "date": [
953 0.0,
954 0
955 ],
956 "desc": "another commit to da/foo",
957 "node": "f2890a05fea49bfaf9fb27ed5490894eba32da78",
958 "parents": [
959 "8d7c456572acf3557e8ed8a07286b10c408bcec5"
960 ],
961 "phase": "draft",
962 "tags": [
963 "tag2"
964 ],
965 "user": "test"
966 },
967 {
968 "bookmarks": [
969 "bookmark1"
970 ],
971 "branch": "default",
972 "date": [
973 0.0,
974 0
975 ],
976 "desc": "modify da/foo",
977 "node": "8d7c456572acf3557e8ed8a07286b10c408bcec5",
978 "parents": [
979 "06e557f3edf66faa1ccaba5dd8c203c21cc79f1e"
980 ],
981 "phase": "public",
982 "tags": [],
983 "user": "test"
984 },
985 {
986 "bookmarks": [],
987 "branch": "default",
988 "date": [
989 0.0,
990 0
991 ],
992 "desc": "initial",
993 "node": "06e557f3edf66faa1ccaba5dd8c203c21cc79f1e",
994 "parents": [],
995 "phase": "public",
996 "tags": [],
997 "user": "test"
998 }
999 ]
1000 }
866 1001
867 1002 (archive/ doesn't use templating, so ignore it)
868 1003
869 1004 (static/ doesn't use templating, so ignore it)
870 1005
871 1006 graph/ shows information that can be used to render a graph of the DAG
872 1007
873 1008 $ request json-graph
874 1009 200 Script output follows
875 1010
876 1011 "not yet implemented"
877 1012
878 1013 help/ shows help topics
879 1014
880 1015 $ request json-help
881 1016 200 Script output follows
882 1017
883 1018 {
884 1019 "earlycommands": [
885 1020 {
886 1021 "summary": "add the specified files on the next commit",
887 1022 "topic": "add"
888 1023 },
889 1024 {
890 1025 "summary": "show changeset information by line for each file",
891 1026 "topic": "annotate"
892 1027 },
893 1028 {
894 1029 "summary": "make a copy of an existing repository",
895 1030 "topic": "clone"
896 1031 },
897 1032 {
898 1033 "summary": "commit the specified files or all outstanding changes",
899 1034 "topic": "commit"
900 1035 },
901 1036 {
902 1037 "summary": "diff repository (or selected files)",
903 1038 "topic": "diff"
904 1039 },
905 1040 {
906 1041 "summary": "dump the header and diffs for one or more changesets",
907 1042 "topic": "export"
908 1043 },
909 1044 {
910 1045 "summary": "forget the specified files on the next commit",
911 1046 "topic": "forget"
912 1047 },
913 1048 {
914 1049 "summary": "create a new repository in the given directory",
915 1050 "topic": "init"
916 1051 },
917 1052 {
918 1053 "summary": "show revision history of entire repository or files",
919 1054 "topic": "log"
920 1055 },
921 1056 {
922 1057 "summary": "merge another revision into working directory",
923 1058 "topic": "merge"
924 1059 },
925 1060 {
926 1061 "summary": "pull changes from the specified source",
927 1062 "topic": "pull"
928 1063 },
929 1064 {
930 1065 "summary": "push changes to the specified destination",
931 1066 "topic": "push"
932 1067 },
933 1068 {
934 1069 "summary": "remove the specified files on the next commit",
935 1070 "topic": "remove"
936 1071 },
937 1072 {
938 1073 "summary": "start stand-alone webserver",
939 1074 "topic": "serve"
940 1075 },
941 1076 {
942 1077 "summary": "show changed files in the working directory",
943 1078 "topic": "status"
944 1079 },
945 1080 {
946 1081 "summary": "summarize working directory state",
947 1082 "topic": "summary"
948 1083 },
949 1084 {
950 1085 "summary": "update working directory (or switch revisions)",
951 1086 "topic": "update"
952 1087 }
953 1088 ],
954 1089 "othercommands": [
955 1090 {
956 1091 "summary": "add all new files, delete all missing files",
957 1092 "topic": "addremove"
958 1093 },
959 1094 {
960 1095 "summary": "create an unversioned archive of a repository revision",
961 1096 "topic": "archive"
962 1097 },
963 1098 {
964 1099 "summary": "reverse effect of earlier changeset",
965 1100 "topic": "backout"
966 1101 },
967 1102 {
968 1103 "summary": "subdivision search of changesets",
969 1104 "topic": "bisect"
970 1105 },
971 1106 {
972 1107 "summary": "create a new bookmark or list existing bookmarks",
973 1108 "topic": "bookmarks"
974 1109 },
975 1110 {
976 1111 "summary": "set or show the current branch name",
977 1112 "topic": "branch"
978 1113 },
979 1114 {
980 1115 "summary": "list repository named branches",
981 1116 "topic": "branches"
982 1117 },
983 1118 {
984 1119 "summary": "create a changegroup file",
985 1120 "topic": "bundle"
986 1121 },
987 1122 {
988 1123 "summary": "output the current or given revision of files",
989 1124 "topic": "cat"
990 1125 },
991 1126 {
992 1127 "summary": "show combined config settings from all hgrc files",
993 1128 "topic": "config"
994 1129 },
995 1130 {
996 1131 "summary": "mark files as copied for the next commit",
997 1132 "topic": "copy"
998 1133 },
999 1134 {
1000 1135 "summary": "list tracked files",
1001 1136 "topic": "files"
1002 1137 },
1003 1138 {
1004 1139 "summary": "copy changes from other branches onto the current branch",
1005 1140 "topic": "graft"
1006 1141 },
1007 1142 {
1008 1143 "summary": "search for a pattern in specified files and revisions",
1009 1144 "topic": "grep"
1010 1145 },
1011 1146 {
1012 1147 "summary": "show branch heads",
1013 1148 "topic": "heads"
1014 1149 },
1015 1150 {
1016 1151 "summary": "show help for a given topic or a help overview",
1017 1152 "topic": "help"
1018 1153 },
1019 1154 {
1020 1155 "summary": "identify the working directory or specified revision",
1021 1156 "topic": "identify"
1022 1157 },
1023 1158 {
1024 1159 "summary": "import an ordered set of patches",
1025 1160 "topic": "import"
1026 1161 },
1027 1162 {
1028 1163 "summary": "show new changesets found in source",
1029 1164 "topic": "incoming"
1030 1165 },
1031 1166 {
1032 1167 "summary": "output the current or given revision of the project manifest",
1033 1168 "topic": "manifest"
1034 1169 },
1035 1170 {
1036 1171 "summary": "show changesets not found in the destination",
1037 1172 "topic": "outgoing"
1038 1173 },
1039 1174 {
1040 1175 "summary": "show aliases for remote repositories",
1041 1176 "topic": "paths"
1042 1177 },
1043 1178 {
1044 1179 "summary": "set or show the current phase name",
1045 1180 "topic": "phase"
1046 1181 },
1047 1182 {
1048 1183 "summary": "roll back an interrupted transaction",
1049 1184 "topic": "recover"
1050 1185 },
1051 1186 {
1052 1187 "summary": "rename files; equivalent of copy + remove",
1053 1188 "topic": "rename"
1054 1189 },
1055 1190 {
1056 1191 "summary": "redo merges or set/view the merge status of files",
1057 1192 "topic": "resolve"
1058 1193 },
1059 1194 {
1060 1195 "summary": "restore files to their checkout state",
1061 1196 "topic": "revert"
1062 1197 },
1063 1198 {
1064 1199 "summary": "print the root (top) of the current working directory",
1065 1200 "topic": "root"
1066 1201 },
1067 1202 {
1068 1203 "summary": "add one or more tags for the current or given revision",
1069 1204 "topic": "tag"
1070 1205 },
1071 1206 {
1072 1207 "summary": "list repository tags",
1073 1208 "topic": "tags"
1074 1209 },
1075 1210 {
1076 1211 "summary": "apply one or more changegroup files",
1077 1212 "topic": "unbundle"
1078 1213 },
1079 1214 {
1080 1215 "summary": "verify the integrity of the repository",
1081 1216 "topic": "verify"
1082 1217 },
1083 1218 {
1084 1219 "summary": "output version and copyright information",
1085 1220 "topic": "version"
1086 1221 }
1087 1222 ],
1088 1223 "topics": [
1089 1224 {
1090 1225 "summary": "Configuration Files",
1091 1226 "topic": "config"
1092 1227 },
1093 1228 {
1094 1229 "summary": "Date Formats",
1095 1230 "topic": "dates"
1096 1231 },
1097 1232 {
1098 1233 "summary": "Diff Formats",
1099 1234 "topic": "diffs"
1100 1235 },
1101 1236 {
1102 1237 "summary": "Environment Variables",
1103 1238 "topic": "environment"
1104 1239 },
1105 1240 {
1106 1241 "summary": "Using Additional Features",
1107 1242 "topic": "extensions"
1108 1243 },
1109 1244 {
1110 1245 "summary": "Specifying File Sets",
1111 1246 "topic": "filesets"
1112 1247 },
1113 1248 {
1114 1249 "summary": "Glossary",
1115 1250 "topic": "glossary"
1116 1251 },
1117 1252 {
1118 1253 "summary": "Syntax for Mercurial Ignore Files",
1119 1254 "topic": "hgignore"
1120 1255 },
1121 1256 {
1122 1257 "summary": "Configuring hgweb",
1123 1258 "topic": "hgweb"
1124 1259 },
1125 1260 {
1126 1261 "summary": "Technical implementation topics",
1127 1262 "topic": "internals"
1128 1263 },
1129 1264 {
1130 1265 "summary": "Merge Tools",
1131 1266 "topic": "merge-tools"
1132 1267 },
1133 1268 {
1134 1269 "summary": "Specifying Multiple Revisions",
1135 1270 "topic": "multirevs"
1136 1271 },
1137 1272 {
1138 1273 "summary": "File Name Patterns",
1139 1274 "topic": "patterns"
1140 1275 },
1141 1276 {
1142 1277 "summary": "Working with Phases",
1143 1278 "topic": "phases"
1144 1279 },
1145 1280 {
1146 1281 "summary": "Specifying Single Revisions",
1147 1282 "topic": "revisions"
1148 1283 },
1149 1284 {
1150 1285 "summary": "Specifying Revision Sets",
1151 1286 "topic": "revsets"
1152 1287 },
1153 1288 {
1154 1289 "summary": "Using Mercurial from scripts and automation",
1155 1290 "topic": "scripting"
1156 1291 },
1157 1292 {
1158 1293 "summary": "Subrepositories",
1159 1294 "topic": "subrepos"
1160 1295 },
1161 1296 {
1162 1297 "summary": "Template Usage",
1163 1298 "topic": "templating"
1164 1299 },
1165 1300 {
1166 1301 "summary": "URL Paths",
1167 1302 "topic": "urls"
1168 1303 }
1169 1304 ]
1170 1305 }
1171 1306
1172 1307 help/{topic} shows an individual help topic
1173 1308
1174 1309 $ request json-help/phases
1175 1310 200 Script output follows
1176 1311
1177 1312 {
1178 1313 "rawdoc": "Working with Phases\n*", (glob)
1179 1314 "topic": "phases"
1180 1315 }
General Comments 0
You need to be logged in to leave comments. Login now