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