##// END OF EJS Templates
internals: extract frame-based protocol docs to own document...
internals: extract frame-based protocol docs to own document wireprotocol.txt is quite long and difficult to digest. The frame-based protocol is effectively a standalone concept (and could even be used outside of Mercurial). So this commit extracts its docs to a standalone file. The first few paragraphs were rewritten as part of the extraction. Sections headers were adjusted accordingly. Existing referalls in wireprotocol.txt were updated to refer to the new doc / concept, which I've started referring to as `hgrpc`. I'm on the fence as to whether to move the HTTP and SSH transport details to the new doc as well. For now, I'm leaving them in wireprotocol.txt. Differential Revision: https://phab.mercurial-scm.org/D4443

File last commit:

r39505:1a786fe0 default
r39594:b0e0db15 default
Show More
test-hgweb-json.t
2219 lines | 48.2 KiB | text/troff | Tads3Lexer
/ tests / test-hgweb-json.t
Gregory Szorc
templates: add a stub template for json...
r24544 #require serve
$ request() {
Matt Mackall
tests: drop explicit $TESTDIR from executables...
r25472 > get-with-headers.py --json localhost:$HGPORT "$1"
Gregory Szorc
templates: add a stub template for json...
r24544 > }
$ hg init test
$ cd test
$ mkdir da
$ echo foo > da/foo
$ echo foo > foo
$ hg -q ci -A -m initial
$ echo bar > foo
$ hg ci -m 'modify foo'
$ echo bar > da/foo
$ hg ci -m 'modify da/foo'
$ hg bookmark bookmark1
$ hg up default
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
(leaving bookmark bookmark1)
$ hg mv foo foo-new
$ hg commit -m 'move foo'
$ hg tag -m 'create tag' tag1
Gregory Szorc
hgweb: add phase to {changeset} template...
r24564 $ hg phase --public -r .
Gregory Szorc
templates: add a stub template for json...
r24544 $ echo baz > da/foo
$ hg commit -m 'another commit to da/foo'
$ hg tag -m 'create tag2' tag2
$ hg bookmark bookmark2
$ hg -q up -r 0
$ hg -q branch test-branch
$ echo branch > foo
$ hg commit -m 'create test branch'
Gregory Szorc
json: implement {changeset} template...
r24563 $ echo branch_commit_2 > foo
$ hg commit -m 'another commit in test-branch'
$ hg -q up default
$ hg merge --tool :local test-branch
0 files updated, 1 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
$ hg commit -m 'merge test-branch into default'
Gregory Szorc
templates: add a stub template for json...
r24544
$ hg log -G
Gregory Szorc
json: implement {changeset} template...
r24563 @ changeset: 9:cc725e08502a
|\ tag: tip
| | parent: 6:ceed296fe500
| | parent: 8:ed66c30e87eb
| | user: test
| | date: Thu Jan 01 00:00:00 1970 +0000
| | summary: merge test-branch into default
| |
| o changeset: 8:ed66c30e87eb
| | branch: test-branch
| | user: test
| | date: Thu Jan 01 00:00:00 1970 +0000
| | summary: another commit in test-branch
| |
| o changeset: 7:6ab967a8ab34
| | branch: test-branch
| | parent: 0:06e557f3edf6
| | user: test
| | date: Thu Jan 01 00:00:00 1970 +0000
| | summary: create test branch
| |
o | changeset: 6:ceed296fe500
Gregory Szorc
templates: add a stub template for json...
r24544 | | bookmark: bookmark2
| | user: test
| | date: Thu Jan 01 00:00:00 1970 +0000
| | summary: create tag2
| |
Gregory Szorc
json: implement {changeset} template...
r24563 o | changeset: 5:f2890a05fea4
Gregory Szorc
templates: add a stub template for json...
r24544 | | tag: tag2
| | user: test
| | date: Thu Jan 01 00:00:00 1970 +0000
| | summary: another commit to da/foo
| |
Gregory Szorc
json: implement {changeset} template...
r24563 o | changeset: 4:93a8ce14f891
Gregory Szorc
templates: add a stub template for json...
r24544 | | user: test
| | date: Thu Jan 01 00:00:00 1970 +0000
| | summary: create tag
| |
Gregory Szorc
json: implement {changeset} template...
r24563 o | changeset: 3:78896eb0e102
Gregory Szorc
templates: add a stub template for json...
r24544 | | tag: tag1
| | user: test
| | date: Thu Jan 01 00:00:00 1970 +0000
| | summary: move foo
| |
Gregory Szorc
json: implement {changeset} template...
r24563 o | changeset: 2:8d7c456572ac
Gregory Szorc
templates: add a stub template for json...
r24544 | | bookmark: bookmark1
| | user: test
| | date: Thu Jan 01 00:00:00 1970 +0000
| | summary: modify da/foo
| |
Gregory Szorc
json: implement {changeset} template...
r24563 o | changeset: 1:f8bbb9024b10
Gregory Szorc
templates: add a stub template for json...
r24544 |/ user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: modify foo
|
o changeset: 0:06e557f3edf6
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: initial
av6
tests: allow bz2 archives in test-hgweb-json.t...
r29457 $ echo '[web]' >> .hg/hgrc
David Demelier
config: rename allow_archive to allow-archive...
r38215 $ echo 'allow-archive = bz2' >> .hg/hgrc
Gregory Szorc
templates: add a stub template for json...
r24544 $ hg serve -p $HGPORT -d --pid-file=hg.pid -A access.log -E error.log
$ cat hg.pid >> $DAEMON_PIDS
(Try to keep these in roughly the order they are defined in webcommands.py)
(log is handled by filelog/ and changelog/ - ignore it)
(rawfile/ doesn't use templating - nothing to test)
file/{revision}/{path} shows file revision
Laura Médioni
templates: add support for filerevision webcommand in json style
r29381 $ request json-file/78896eb0e102/foo-new
Gregory Szorc
templates: add a stub template for json...
r24544 200 Script output follows
Laura Médioni
templates: add support for filerevision webcommand in json style
r29381 {
"bookmarks": [],
"branch": "default",
"date": [
0.0,
0
],
"desc": "move foo",
"lines": [
{
"line": "bar\n"
}
],
"node": "78896eb0e102174ce9278438a95e12543e4367a7",
"parents": [
"f8bbb9024b10f93cdbb8d940337398291d40dea8"
],
"path": "foo-new",
"phase": "public",
"tags": [
"tag1"
],
"user": "test"
}
Gregory Szorc
templates: add a stub template for json...
r24544
file/{revision} shows root directory info
Gregory Szorc
json: implement {manifest} template...
r24589 $ request json-file/cc725e08502a
Gregory Szorc
templates: add a stub template for json...
r24544 200 Script output follows
Gregory Szorc
json: implement {manifest} template...
r24589 {
"abspath": "/",
"bookmarks": [],
"directories": [
{
"abspath": "/da",
"basename": "da",
"emptydirs": ""
}
],
"files": [
{
"abspath": ".hgtags",
"basename": ".hgtags",
"date": [
0.0,
0
],
"flags": "",
"size": 92
},
{
"abspath": "foo-new",
"basename": "foo-new",
"date": [
0.0,
0
],
"flags": "",
"size": 4
}
],
"node": "cc725e08502a79dd1eda913760fbe06ed7a9abc7",
"tags": [
"tip"
]
}
Gregory Szorc
templates: add a stub template for json...
r24544
changelog/ shows information about several changesets
$ request json-changelog
200 Script output follows
Gregory Szorc
json: implement {shortlog} and {changelog} templates...
r24588 {
"changeset_count": 10,
"changesets": [
{
"bookmarks": [],
Laura Médioni
templates: add support for filelog webcommand in json style...
r29380 "branch": "default",
Gregory Szorc
json: implement {shortlog} and {changelog} templates...
r24588 "date": [
0.0,
0
],
"desc": "merge test-branch into default",
"node": "cc725e08502a79dd1eda913760fbe06ed7a9abc7",
av6
hgweb: add parents to json-log (issue5074)...
r28709 "parents": [
"ceed296fe500c3fac9541e31dad860cb49c89e45",
"ed66c30e87eb65337c05a4229efaa5f1d5285a90"
],
Laura Médioni
templates: add support for filelog webcommand in json style...
r29380 "phase": "draft",
Gregory Szorc
json: implement {shortlog} and {changelog} templates...
r24588 "tags": [
"tip"
],
"user": "test"
},
{
"bookmarks": [],
Laura Médioni
templates: add support for filelog webcommand in json style...
r29380 "branch": "test-branch",
Gregory Szorc
json: implement {shortlog} and {changelog} templates...
r24588 "date": [
0.0,
0
],
"desc": "another commit in test-branch",
"node": "ed66c30e87eb65337c05a4229efaa5f1d5285a90",
av6
hgweb: add parents to json-log (issue5074)...
r28709 "parents": [
"6ab967a8ab3489227a83f80e920faa039a71819f"
],
Laura Médioni
templates: add support for filelog webcommand in json style...
r29380 "phase": "draft",
Gregory Szorc
json: implement {shortlog} and {changelog} templates...
r24588 "tags": [],
"user": "test"
},
{
"bookmarks": [],
Laura Médioni
templates: add support for filelog webcommand in json style...
r29380 "branch": "test-branch",
Gregory Szorc
json: implement {shortlog} and {changelog} templates...
r24588 "date": [
0.0,
0
],
"desc": "create test branch",
"node": "6ab967a8ab3489227a83f80e920faa039a71819f",
av6
hgweb: add parents to json-log (issue5074)...
r28709 "parents": [
"06e557f3edf66faa1ccaba5dd8c203c21cc79f1e"
],
Laura Médioni
templates: add support for filelog webcommand in json style...
r29380 "phase": "draft",
Gregory Szorc
json: implement {shortlog} and {changelog} templates...
r24588 "tags": [],
"user": "test"
},
{
"bookmarks": [
"bookmark2"
],
Laura Médioni
templates: add support for filelog webcommand in json style...
r29380 "branch": "default",
Gregory Szorc
json: implement {shortlog} and {changelog} templates...
r24588 "date": [
0.0,
0
],
"desc": "create tag2",
"node": "ceed296fe500c3fac9541e31dad860cb49c89e45",
av6
hgweb: add parents to json-log (issue5074)...
r28709 "parents": [
"f2890a05fea49bfaf9fb27ed5490894eba32da78"
],
Laura Médioni
templates: add support for filelog webcommand in json style...
r29380 "phase": "draft",
Gregory Szorc
json: implement {shortlog} and {changelog} templates...
r24588 "tags": [],
"user": "test"
},
{
"bookmarks": [],
Laura Médioni
templates: add support for filelog webcommand in json style...
r29380 "branch": "default",
Gregory Szorc
json: implement {shortlog} and {changelog} templates...
r24588 "date": [
0.0,
0
],
"desc": "another commit to da/foo",
"node": "f2890a05fea49bfaf9fb27ed5490894eba32da78",
av6
hgweb: add parents to json-log (issue5074)...
r28709 "parents": [
"93a8ce14f89156426b7fa981af8042da53f03aa0"
],
Laura Médioni
templates: add support for filelog webcommand in json style...
r29380 "phase": "draft",
Gregory Szorc
json: implement {shortlog} and {changelog} templates...
r24588 "tags": [
"tag2"
],
"user": "test"
},
{
"bookmarks": [],
Laura Médioni
templates: add support for filelog webcommand in json style...
r29380 "branch": "default",
Gregory Szorc
json: implement {shortlog} and {changelog} templates...
r24588 "date": [
0.0,
0
],
"desc": "create tag",
"node": "93a8ce14f89156426b7fa981af8042da53f03aa0",
av6
hgweb: add parents to json-log (issue5074)...
r28709 "parents": [
"78896eb0e102174ce9278438a95e12543e4367a7"
],
Laura Médioni
templates: add support for filelog webcommand in json style...
r29380 "phase": "public",
Gregory Szorc
json: implement {shortlog} and {changelog} templates...
r24588 "tags": [],
"user": "test"
},
{
"bookmarks": [],
Laura Médioni
templates: add support for filelog webcommand in json style...
r29380 "branch": "default",
Gregory Szorc
json: implement {shortlog} and {changelog} templates...
r24588 "date": [
0.0,
0
],
"desc": "move foo",
"node": "78896eb0e102174ce9278438a95e12543e4367a7",
av6
hgweb: add parents to json-log (issue5074)...
r28709 "parents": [
"8d7c456572acf3557e8ed8a07286b10c408bcec5"
],
Laura Médioni
templates: add support for filelog webcommand in json style...
r29380 "phase": "public",
Gregory Szorc
json: implement {shortlog} and {changelog} templates...
r24588 "tags": [
"tag1"
],
"user": "test"
},
{
"bookmarks": [
"bookmark1"
],
Laura Médioni
templates: add support for filelog webcommand in json style...
r29380 "branch": "default",
Gregory Szorc
json: implement {shortlog} and {changelog} templates...
r24588 "date": [
0.0,
0
],
"desc": "modify da/foo",
"node": "8d7c456572acf3557e8ed8a07286b10c408bcec5",
av6
hgweb: add parents to json-log (issue5074)...
r28709 "parents": [
"f8bbb9024b10f93cdbb8d940337398291d40dea8"
],
Laura Médioni
templates: add support for filelog webcommand in json style...
r29380 "phase": "public",
Gregory Szorc
json: implement {shortlog} and {changelog} templates...
r24588 "tags": [],
"user": "test"
},
{
"bookmarks": [],
Laura Médioni
templates: add support for filelog webcommand in json style...
r29380 "branch": "default",
Gregory Szorc
json: implement {shortlog} and {changelog} templates...
r24588 "date": [
0.0,
0
],
"desc": "modify foo",
"node": "f8bbb9024b10f93cdbb8d940337398291d40dea8",
av6
hgweb: add parents to json-log (issue5074)...
r28709 "parents": [
"06e557f3edf66faa1ccaba5dd8c203c21cc79f1e"
],
Laura Médioni
templates: add support for filelog webcommand in json style...
r29380 "phase": "public",
Gregory Szorc
json: implement {shortlog} and {changelog} templates...
r24588 "tags": [],
"user": "test"
},
{
"bookmarks": [],
Laura Médioni
templates: add support for filelog webcommand in json style...
r29380 "branch": "default",
Gregory Szorc
json: implement {shortlog} and {changelog} templates...
r24588 "date": [
0.0,
0
],
"desc": "initial",
"node": "06e557f3edf66faa1ccaba5dd8c203c21cc79f1e",
av6
hgweb: add parents to json-log (issue5074)...
r28709 "parents": [],
Laura Médioni
templates: add support for filelog webcommand in json style...
r29380 "phase": "public",
Gregory Szorc
json: implement {shortlog} and {changelog} templates...
r24588 "tags": [],
"user": "test"
}
],
"node": "cc725e08502a79dd1eda913760fbe06ed7a9abc7"
}
Gregory Szorc
templates: add a stub template for json...
r24544
Gregory Szorc
json: implement {shortlog} and {changelog} templates...
r24588 changelog/{revision} shows information starting at a specific changeset
Gregory Szorc
templates: add a stub template for json...
r24544
Gregory Szorc
json: implement {shortlog} and {changelog} templates...
r24588 $ request json-changelog/f8bbb9024b10
Gregory Szorc
templates: add a stub template for json...
r24544 200 Script output follows
Gregory Szorc
json: implement {shortlog} and {changelog} templates...
r24588 {
"changeset_count": 10,
"changesets": [
{
"bookmarks": [],
Laura Médioni
templates: add support for filelog webcommand in json style...
r29380 "branch": "default",
Gregory Szorc
json: implement {shortlog} and {changelog} templates...
r24588 "date": [
0.0,
0
],
"desc": "modify foo",
"node": "f8bbb9024b10f93cdbb8d940337398291d40dea8",
av6
hgweb: add parents to json-log (issue5074)...
r28709 "parents": [
"06e557f3edf66faa1ccaba5dd8c203c21cc79f1e"
],
Laura Médioni
templates: add support for filelog webcommand in json style...
r29380 "phase": "public",
Gregory Szorc
json: implement {shortlog} and {changelog} templates...
r24588 "tags": [],
"user": "test"
},
{
"bookmarks": [],
Laura Médioni
templates: add support for filelog webcommand in json style...
r29380 "branch": "default",
Gregory Szorc
json: implement {shortlog} and {changelog} templates...
r24588 "date": [
0.0,
0
],
"desc": "initial",
"node": "06e557f3edf66faa1ccaba5dd8c203c21cc79f1e",
av6
hgweb: add parents to json-log (issue5074)...
r28709 "parents": [],
Laura Médioni
templates: add support for filelog webcommand in json style...
r29380 "phase": "public",
Gregory Szorc
json: implement {shortlog} and {changelog} templates...
r24588 "tags": [],
"user": "test"
}
],
"node": "f8bbb9024b10f93cdbb8d940337398291d40dea8"
}
Gregory Szorc
templates: add a stub template for json...
r24544
shortlog/ shows information about a set of changesets
$ request json-shortlog
200 Script output follows
Gregory Szorc
json: implement {shortlog} and {changelog} templates...
r24588 {
"changeset_count": 10,
"changesets": [
{
"bookmarks": [],
Laura Médioni
templates: add support for filelog webcommand in json style...
r29380 "branch": "default",
Gregory Szorc
json: implement {shortlog} and {changelog} templates...
r24588 "date": [
0.0,
0
],
"desc": "merge test-branch into default",
"node": "cc725e08502a79dd1eda913760fbe06ed7a9abc7",
av6
hgweb: add parents to json-log (issue5074)...
r28709 "parents": [
"ceed296fe500c3fac9541e31dad860cb49c89e45",
"ed66c30e87eb65337c05a4229efaa5f1d5285a90"
],
Laura Médioni
templates: add support for filelog webcommand in json style...
r29380 "phase": "draft",
Gregory Szorc
json: implement {shortlog} and {changelog} templates...
r24588 "tags": [
"tip"
],
"user": "test"
},
{
"bookmarks": [],
Laura Médioni
templates: add support for filelog webcommand in json style...
r29380 "branch": "test-branch",
Gregory Szorc
json: implement {shortlog} and {changelog} templates...
r24588 "date": [
0.0,
0
],
"desc": "another commit in test-branch",
"node": "ed66c30e87eb65337c05a4229efaa5f1d5285a90",
av6
hgweb: add parents to json-log (issue5074)...
r28709 "parents": [
"6ab967a8ab3489227a83f80e920faa039a71819f"
],
Laura Médioni
templates: add support for filelog webcommand in json style...
r29380 "phase": "draft",
Gregory Szorc
json: implement {shortlog} and {changelog} templates...
r24588 "tags": [],
"user": "test"
},
{
"bookmarks": [],
Laura Médioni
templates: add support for filelog webcommand in json style...
r29380 "branch": "test-branch",
Gregory Szorc
json: implement {shortlog} and {changelog} templates...
r24588 "date": [
0.0,
0
],
"desc": "create test branch",
"node": "6ab967a8ab3489227a83f80e920faa039a71819f",
av6
hgweb: add parents to json-log (issue5074)...
r28709 "parents": [
"06e557f3edf66faa1ccaba5dd8c203c21cc79f1e"
],
Laura Médioni
templates: add support for filelog webcommand in json style...
r29380 "phase": "draft",
Gregory Szorc
json: implement {shortlog} and {changelog} templates...
r24588 "tags": [],
"user": "test"
},
{
"bookmarks": [
"bookmark2"
],
Laura Médioni
templates: add support for filelog webcommand in json style...
r29380 "branch": "default",
Gregory Szorc
json: implement {shortlog} and {changelog} templates...
r24588 "date": [
0.0,
0
],
"desc": "create tag2",
"node": "ceed296fe500c3fac9541e31dad860cb49c89e45",
av6
hgweb: add parents to json-log (issue5074)...
r28709 "parents": [
"f2890a05fea49bfaf9fb27ed5490894eba32da78"
],
Laura Médioni
templates: add support for filelog webcommand in json style...
r29380 "phase": "draft",
Gregory Szorc
json: implement {shortlog} and {changelog} templates...
r24588 "tags": [],
"user": "test"
},
{
"bookmarks": [],
Laura Médioni
templates: add support for filelog webcommand in json style...
r29380 "branch": "default",
Gregory Szorc
json: implement {shortlog} and {changelog} templates...
r24588 "date": [
0.0,
0
],
"desc": "another commit to da/foo",
"node": "f2890a05fea49bfaf9fb27ed5490894eba32da78",
av6
hgweb: add parents to json-log (issue5074)...
r28709 "parents": [
"93a8ce14f89156426b7fa981af8042da53f03aa0"
],
Laura Médioni
templates: add support for filelog webcommand in json style...
r29380 "phase": "draft",
Gregory Szorc
json: implement {shortlog} and {changelog} templates...
r24588 "tags": [
"tag2"
],
"user": "test"
},
{
"bookmarks": [],
Laura Médioni
templates: add support for filelog webcommand in json style...
r29380 "branch": "default",
Gregory Szorc
json: implement {shortlog} and {changelog} templates...
r24588 "date": [
0.0,
0
],
"desc": "create tag",
"node": "93a8ce14f89156426b7fa981af8042da53f03aa0",
av6
hgweb: add parents to json-log (issue5074)...
r28709 "parents": [
"78896eb0e102174ce9278438a95e12543e4367a7"
],
Laura Médioni
templates: add support for filelog webcommand in json style...
r29380 "phase": "public",
Gregory Szorc
json: implement {shortlog} and {changelog} templates...
r24588 "tags": [],
"user": "test"
},
{
"bookmarks": [],
Laura Médioni
templates: add support for filelog webcommand in json style...
r29380 "branch": "default",
Gregory Szorc
json: implement {shortlog} and {changelog} templates...
r24588 "date": [
0.0,
0
],
"desc": "move foo",
"node": "78896eb0e102174ce9278438a95e12543e4367a7",
av6
hgweb: add parents to json-log (issue5074)...
r28709 "parents": [
"8d7c456572acf3557e8ed8a07286b10c408bcec5"
],
Laura Médioni
templates: add support for filelog webcommand in json style...
r29380 "phase": "public",
Gregory Szorc
json: implement {shortlog} and {changelog} templates...
r24588 "tags": [
"tag1"
],
"user": "test"
},
{
"bookmarks": [
"bookmark1"
],
Laura Médioni
templates: add support for filelog webcommand in json style...
r29380 "branch": "default",
Gregory Szorc
json: implement {shortlog} and {changelog} templates...
r24588 "date": [
0.0,
0
],
"desc": "modify da/foo",
"node": "8d7c456572acf3557e8ed8a07286b10c408bcec5",
av6
hgweb: add parents to json-log (issue5074)...
r28709 "parents": [
"f8bbb9024b10f93cdbb8d940337398291d40dea8"
],
Laura Médioni
templates: add support for filelog webcommand in json style...
r29380 "phase": "public",
Gregory Szorc
json: implement {shortlog} and {changelog} templates...
r24588 "tags": [],
"user": "test"
},
{
"bookmarks": [],
Laura Médioni
templates: add support for filelog webcommand in json style...
r29380 "branch": "default",
Gregory Szorc
json: implement {shortlog} and {changelog} templates...
r24588 "date": [
0.0,
0
],
"desc": "modify foo",
"node": "f8bbb9024b10f93cdbb8d940337398291d40dea8",
av6
hgweb: add parents to json-log (issue5074)...
r28709 "parents": [
"06e557f3edf66faa1ccaba5dd8c203c21cc79f1e"
],
Laura Médioni
templates: add support for filelog webcommand in json style...
r29380 "phase": "public",
Gregory Szorc
json: implement {shortlog} and {changelog} templates...
r24588 "tags": [],
"user": "test"
},
{
"bookmarks": [],
Laura Médioni
templates: add support for filelog webcommand in json style...
r29380 "branch": "default",
Gregory Szorc
json: implement {shortlog} and {changelog} templates...
r24588 "date": [
0.0,
0
],
"desc": "initial",
"node": "06e557f3edf66faa1ccaba5dd8c203c21cc79f1e",
av6
hgweb: add parents to json-log (issue5074)...
r28709 "parents": [],
Laura Médioni
templates: add support for filelog webcommand in json style...
r29380 "phase": "public",
Gregory Szorc
json: implement {shortlog} and {changelog} templates...
r24588 "tags": [],
"user": "test"
}
],
"node": "cc725e08502a79dd1eda913760fbe06ed7a9abc7"
}
Gregory Szorc
templates: add a stub template for json...
r24544
Yuya Nishihara
hgweb: show shortlog by default in json output (issue5978)
r39504 shortlog is displayed by default (issue5978)
$ request '?style=json'
200 Script output follows
{
"changeset_count": 10,
"changesets": [
{
"bookmarks": [],
"branch": "default",
"date": [
0.0,
0
],
"desc": "merge test-branch into default",
"node": "cc725e08502a79dd1eda913760fbe06ed7a9abc7",
"parents": [
"ceed296fe500c3fac9541e31dad860cb49c89e45",
"ed66c30e87eb65337c05a4229efaa5f1d5285a90"
],
"phase": "draft",
"tags": [
"tip"
],
"user": "test"
},
{
"bookmarks": [],
"branch": "test-branch",
"date": [
0.0,
0
],
"desc": "another commit in test-branch",
"node": "ed66c30e87eb65337c05a4229efaa5f1d5285a90",
"parents": [
"6ab967a8ab3489227a83f80e920faa039a71819f"
],
"phase": "draft",
"tags": [],
"user": "test"
},
{
"bookmarks": [],
"branch": "test-branch",
"date": [
0.0,
0
],
"desc": "create test branch",
"node": "6ab967a8ab3489227a83f80e920faa039a71819f",
"parents": [
"06e557f3edf66faa1ccaba5dd8c203c21cc79f1e"
],
"phase": "draft",
"tags": [],
"user": "test"
},
{
"bookmarks": [
"bookmark2"
],
"branch": "default",
"date": [
0.0,
0
],
"desc": "create tag2",
"node": "ceed296fe500c3fac9541e31dad860cb49c89e45",
"parents": [
"f2890a05fea49bfaf9fb27ed5490894eba32da78"
],
"phase": "draft",
"tags": [],
"user": "test"
},
{
"bookmarks": [],
"branch": "default",
"date": [
0.0,
0
],
"desc": "another commit to da/foo",
"node": "f2890a05fea49bfaf9fb27ed5490894eba32da78",
"parents": [
"93a8ce14f89156426b7fa981af8042da53f03aa0"
],
"phase": "draft",
"tags": [
"tag2"
],
"user": "test"
},
{
"bookmarks": [],
"branch": "default",
"date": [
0.0,
0
],
"desc": "create tag",
"node": "93a8ce14f89156426b7fa981af8042da53f03aa0",
"parents": [
"78896eb0e102174ce9278438a95e12543e4367a7"
],
"phase": "public",
"tags": [],
"user": "test"
},
{
"bookmarks": [],
"branch": "default",
"date": [
0.0,
0
],
"desc": "move foo",
"node": "78896eb0e102174ce9278438a95e12543e4367a7",
"parents": [
"8d7c456572acf3557e8ed8a07286b10c408bcec5"
],
"phase": "public",
"tags": [
"tag1"
],
"user": "test"
},
{
"bookmarks": [
"bookmark1"
],
"branch": "default",
"date": [
0.0,
0
],
"desc": "modify da/foo",
"node": "8d7c456572acf3557e8ed8a07286b10c408bcec5",
"parents": [
"f8bbb9024b10f93cdbb8d940337398291d40dea8"
],
"phase": "public",
"tags": [],
"user": "test"
},
{
"bookmarks": [],
"branch": "default",
"date": [
0.0,
0
],
"desc": "modify foo",
"node": "f8bbb9024b10f93cdbb8d940337398291d40dea8",
"parents": [
"06e557f3edf66faa1ccaba5dd8c203c21cc79f1e"
],
"phase": "public",
"tags": [],
"user": "test"
},
{
"bookmarks": [],
"branch": "default",
"date": [
0.0,
0
],
"desc": "initial",
"node": "06e557f3edf66faa1ccaba5dd8c203c21cc79f1e",
"parents": [],
"phase": "public",
"tags": [],
"user": "test"
}
],
"node": "cc725e08502a79dd1eda913760fbe06ed7a9abc7"
}
Gregory Szorc
templates: add a stub template for json...
r24544 changeset/ renders the tip changeset
$ request json-rev
200 Script output follows
Gregory Szorc
json: implement {changeset} template...
r24563 {
"bookmarks": [],
"branch": "default",
"date": [
0.0,
0
],
"desc": "merge test-branch into default",
"node": "cc725e08502a79dd1eda913760fbe06ed7a9abc7",
"parents": [
"ceed296fe500c3fac9541e31dad860cb49c89e45",
"ed66c30e87eb65337c05a4229efaa5f1d5285a90"
],
Gregory Szorc
hgweb: add phase to {changeset} template...
r24564 "phase": "draft",
Gregory Szorc
json: implement {changeset} template...
r24563 "tags": [
"tip"
],
"user": "test"
}
Gregory Szorc
templates: add a stub template for json...
r24544
changeset/{revision} shows tags
$ request json-rev/78896eb0e102
200 Script output follows
Gregory Szorc
json: implement {changeset} template...
r24563 {
"bookmarks": [],
"branch": "default",
"date": [
0.0,
0
],
"desc": "move foo",
"node": "78896eb0e102174ce9278438a95e12543e4367a7",
"parents": [
"8d7c456572acf3557e8ed8a07286b10c408bcec5"
],
Gregory Szorc
hgweb: add phase to {changeset} template...
r24564 "phase": "public",
Gregory Szorc
json: implement {changeset} template...
r24563 "tags": [
"tag1"
],
"user": "test"
}
Gregory Szorc
templates: add a stub template for json...
r24544
changeset/{revision} shows bookmarks
$ request json-rev/8d7c456572ac
200 Script output follows
Gregory Szorc
json: implement {changeset} template...
r24563 {
"bookmarks": [
"bookmark1"
],
"branch": "default",
"date": [
0.0,
0
],
"desc": "modify da/foo",
"node": "8d7c456572acf3557e8ed8a07286b10c408bcec5",
"parents": [
"f8bbb9024b10f93cdbb8d940337398291d40dea8"
],
Gregory Szorc
hgweb: add phase to {changeset} template...
r24564 "phase": "public",
Gregory Szorc
json: implement {changeset} template...
r24563 "tags": [],
"user": "test"
}
Gregory Szorc
templates: add a stub template for json...
r24544
changeset/{revision} shows branches
$ request json-rev/6ab967a8ab34
200 Script output follows
Gregory Szorc
json: implement {changeset} template...
r24563 {
"bookmarks": [],
"branch": "test-branch",
"date": [
0.0,
0
],
"desc": "create test branch",
"node": "6ab967a8ab3489227a83f80e920faa039a71819f",
"parents": [
"06e557f3edf66faa1ccaba5dd8c203c21cc79f1e"
],
Gregory Szorc
hgweb: add phase to {changeset} template...
r24564 "phase": "draft",
Gregory Szorc
json: implement {changeset} template...
r24563 "tags": [],
"user": "test"
}
Gregory Szorc
templates: add a stub template for json...
r24544
manifest/{revision}/{path} shows info about a directory at a revision
$ request json-manifest/06e557f3edf6/
200 Script output follows
Gregory Szorc
json: implement {manifest} template...
r24589 {
"abspath": "/",
"bookmarks": [],
"directories": [
{
"abspath": "/da",
"basename": "da",
"emptydirs": ""
}
],
"files": [
{
"abspath": "foo",
"basename": "foo",
"date": [
0.0,
0
],
"flags": "",
"size": 4
}
],
"node": "06e557f3edf66faa1ccaba5dd8c203c21cc79f1e",
"tags": []
}
Gregory Szorc
templates: add a stub template for json...
r24544
tags/ shows tags info
$ request json-tags
200 Script output follows
Gregory Szorc
json: implement {tags} template...
r24545 {
Gregory Szorc
json: implement {changeset} template...
r24563 "node": "cc725e08502a79dd1eda913760fbe06ed7a9abc7",
Gregory Szorc
json: implement {tags} template...
r24545 "tags": [
{
"date": [
0.0,
0
],
"node": "f2890a05fea49bfaf9fb27ed5490894eba32da78",
"tag": "tag2"
},
{
"date": [
0.0,
0
],
"node": "78896eb0e102174ce9278438a95e12543e4367a7",
"tag": "tag1"
}
]
}
Gregory Szorc
templates: add a stub template for json...
r24544
bookmarks/ shows bookmarks info
$ request json-bookmarks
200 Script output follows
Gregory Szorc
json: implement {bookmarks} template
r24546 {
"bookmarks": [
{
av6
hgweb: sort bookmarks in revlog order of their nodes...
r28711 "bookmark": "bookmark2",
"date": [
0.0,
0
],
"node": "ceed296fe500c3fac9541e31dad860cb49c89e45"
},
{
Gregory Szorc
json: implement {bookmarks} template
r24546 "bookmark": "bookmark1",
"date": [
0.0,
0
],
"node": "8d7c456572acf3557e8ed8a07286b10c408bcec5"
}
],
Gregory Szorc
json: implement {changeset} template...
r24563 "node": "cc725e08502a79dd1eda913760fbe06ed7a9abc7"
Gregory Szorc
json: implement {bookmarks} template
r24546 }
Gregory Szorc
templates: add a stub template for json...
r24544
branches/ shows branches info
$ request json-branches
200 Script output follows
Gregory Szorc
json: implement {branches} template
r24547 {
"branches": [
{
Gregory Szorc
json: implement {changeset} template...
r24563 "branch": "default",
"date": [
0.0,
0
],
"node": "cc725e08502a79dd1eda913760fbe06ed7a9abc7",
"status": "open"
},
{
Gregory Szorc
json: implement {branches} template
r24547 "branch": "test-branch",
"date": [
0.0,
0
],
Gregory Szorc
json: implement {changeset} template...
r24563 "node": "ed66c30e87eb65337c05a4229efaa5f1d5285a90",
"status": "inactive"
Gregory Szorc
json: implement {branches} template
r24547 }
]
}
Gregory Szorc
templates: add a stub template for json...
r24544
summary/ shows a summary of repository state
$ request json-summary
200 Script output follows
Laura Médioni
templates: add support for summary webcommand in json style...
r29382 {
av6
tests: allow bz2 archives in test-hgweb-json.t...
r29457 "archives": [
{
"extension": ".tar.bz2",
"node": "tip",
av6
hgweb: add absolute urls for archives in json-summary
r29458 "type": "bz2",
"url": "http://*:$HGPORT/archive/tip.tar.bz2" (glob)
av6
tests: allow bz2 archives in test-hgweb-json.t...
r29457 }
],
Laura Médioni
templates: add support for summary webcommand in json style...
r29382 "bookmarks": [
{
"bookmark": "bookmark2",
"date": [
0.0,
0
],
"node": "ceed296fe500c3fac9541e31dad860cb49c89e45"
},
{
"bookmark": "bookmark1",
"date": [
0.0,
0
],
"node": "8d7c456572acf3557e8ed8a07286b10c408bcec5"
}
],
"branches": [
{
"branch": "default",
"date": [
0.0,
0
],
"node": "cc725e08502a79dd1eda913760fbe06ed7a9abc7",
"status": "open"
},
{
"branch": "test-branch",
"date": [
0.0,
0
],
"node": "ed66c30e87eb65337c05a4229efaa5f1d5285a90",
"status": "inactive"
}
],
Gregory Szorc
hgweb: expose list of per-repo labels to templates...
r29471 "labels": [],
Laura Médioni
templates: add support for summary webcommand in json style...
r29382 "lastchange": [
0.0,
0
],
"node": "cc725e08502a79dd1eda913760fbe06ed7a9abc7",
"shortlog": [
{
"bookmarks": [],
"branch": "default",
"date": [
0.0,
0
],
"desc": "merge test-branch into default",
"node": "cc725e08502a79dd1eda913760fbe06ed7a9abc7",
"parents": [
"ceed296fe500c3fac9541e31dad860cb49c89e45",
"ed66c30e87eb65337c05a4229efaa5f1d5285a90"
],
"phase": "draft",
"tags": [
"tip"
],
"user": "test"
},
{
"bookmarks": [],
"branch": "test-branch",
"date": [
0.0,
0
],
"desc": "another commit in test-branch",
"node": "ed66c30e87eb65337c05a4229efaa5f1d5285a90",
"parents": [
"6ab967a8ab3489227a83f80e920faa039a71819f"
],
"phase": "draft",
"tags": [],
"user": "test"
},
{
"bookmarks": [],
"branch": "test-branch",
"date": [
0.0,
0
],
"desc": "create test branch",
"node": "6ab967a8ab3489227a83f80e920faa039a71819f",
"parents": [
"06e557f3edf66faa1ccaba5dd8c203c21cc79f1e"
],
"phase": "draft",
"tags": [],
"user": "test"
},
{
"bookmarks": [
"bookmark2"
],
"branch": "default",
"date": [
0.0,
0
],
"desc": "create tag2",
"node": "ceed296fe500c3fac9541e31dad860cb49c89e45",
"parents": [
"f2890a05fea49bfaf9fb27ed5490894eba32da78"
],
"phase": "draft",
"tags": [],
"user": "test"
},
{
"bookmarks": [],
"branch": "default",
"date": [
0.0,
0
],
"desc": "another commit to da/foo",
"node": "f2890a05fea49bfaf9fb27ed5490894eba32da78",
"parents": [
"93a8ce14f89156426b7fa981af8042da53f03aa0"
],
"phase": "draft",
"tags": [
"tag2"
],
"user": "test"
},
{
"bookmarks": [],
"branch": "default",
"date": [
0.0,
0
],
"desc": "create tag",
"node": "93a8ce14f89156426b7fa981af8042da53f03aa0",
"parents": [
"78896eb0e102174ce9278438a95e12543e4367a7"
],
"phase": "public",
"tags": [],
"user": "test"
},
{
"bookmarks": [],
"branch": "default",
"date": [
0.0,
0
],
"desc": "move foo",
"node": "78896eb0e102174ce9278438a95e12543e4367a7",
"parents": [
"8d7c456572acf3557e8ed8a07286b10c408bcec5"
],
"phase": "public",
"tags": [
"tag1"
],
"user": "test"
},
{
"bookmarks": [
"bookmark1"
],
"branch": "default",
"date": [
0.0,
0
],
"desc": "modify da/foo",
"node": "8d7c456572acf3557e8ed8a07286b10c408bcec5",
"parents": [
"f8bbb9024b10f93cdbb8d940337398291d40dea8"
],
"phase": "public",
"tags": [],
"user": "test"
},
{
"bookmarks": [],
"branch": "default",
"date": [
0.0,
0
],
"desc": "modify foo",
"node": "f8bbb9024b10f93cdbb8d940337398291d40dea8",
"parents": [
"06e557f3edf66faa1ccaba5dd8c203c21cc79f1e"
],
"phase": "public",
"tags": [],
"user": "test"
},
{
"bookmarks": [],
"branch": "default",
"date": [
0.0,
0
],
"desc": "initial",
"node": "06e557f3edf66faa1ccaba5dd8c203c21cc79f1e",
"parents": [],
"phase": "public",
"tags": [],
"user": "test"
}
],
"tags": [
{
"date": [
0.0,
0
],
"node": "f2890a05fea49bfaf9fb27ed5490894eba32da78",
"tag": "tag2"
},
{
"date": [
0.0,
0
],
"node": "78896eb0e102174ce9278438a95e12543e4367a7",
"tag": "tag1"
}
]
}
Gregory Szorc
templates: add a stub template for json...
r24544
Laura Médioni
templates: add support for search webcommand in json style
r29383 $ request json-changelog?rev=create
200 Script output follows
{
"entries": [
{
"bookmarks": [],
"branch": "test-branch",
"date": [
0.0,
0
],
"desc": "create test branch",
"node": "6ab967a8ab3489227a83f80e920faa039a71819f",
"parents": [
"06e557f3edf66faa1ccaba5dd8c203c21cc79f1e"
],
"phase": "draft",
"tags": [],
"user": "test"
},
{
"bookmarks": [
"bookmark2"
],
"branch": "default",
"date": [
0.0,
0
],
"desc": "create tag2",
"node": "ceed296fe500c3fac9541e31dad860cb49c89e45",
"parents": [
"f2890a05fea49bfaf9fb27ed5490894eba32da78"
],
"phase": "draft",
"tags": [],
"user": "test"
},
{
"bookmarks": [],
"branch": "default",
"date": [
0.0,
0
],
"desc": "create tag",
"node": "93a8ce14f89156426b7fa981af8042da53f03aa0",
"parents": [
"78896eb0e102174ce9278438a95e12543e4367a7"
],
"phase": "public",
"tags": [],
"user": "test"
}
],
"node": "cc725e08502a79dd1eda913760fbe06ed7a9abc7",
"query": "create"
}
Gregory Szorc
templates: add a stub template for json...
r24544 filediff/{revision}/{path} shows changes to a file in a revision
$ request json-diff/f8bbb9024b10/foo
200 Script output follows
Gregory Szorc
json: implement {filediff} template...
r24713 {
"author": "test",
"children": [],
"date": [
0.0,
0
],
"desc": "modify foo",
"diff": [
{
"blockno": 1,
"lines": [
{
"l": "--- a/foo\tThu Jan 01 00:00:00 1970 +0000\n",
"n": 1,
"t": "-"
},
{
"l": "+++ b/foo\tThu Jan 01 00:00:00 1970 +0000\n",
"n": 2,
"t": "+"
},
{
"l": "@@ -1,1 +1,1 @@\n",
"n": 3,
"t": "@"
},
{
"l": "-foo\n",
"n": 4,
"t": "-"
},
{
"l": "+bar\n",
"n": 5,
"t": "+"
}
]
}
],
"node": "f8bbb9024b10f93cdbb8d940337398291d40dea8",
"parents": [
"06e557f3edf66faa1ccaba5dd8c203c21cc79f1e"
],
"path": "foo"
}
Gregory Szorc
templates: add a stub template for json...
r24544
comparison/{revision}/{path} shows information about before and after for a file
$ request json-comparison/f8bbb9024b10/foo
200 Script output follows
Gregory Szorc
json: implement {comparison} template...
r24714 {
"author": "test",
"children": [],
"comparison": [
{
"lines": [
{
"ll": "foo",
"ln": 1,
"rl": "bar",
"rn": 1,
"t": "replace"
}
]
}
],
"date": [
0.0,
0
],
"desc": "modify foo",
"leftnode": "06e557f3edf66faa1ccaba5dd8c203c21cc79f1e",
"node": "f8bbb9024b10f93cdbb8d940337398291d40dea8",
"parents": [
"06e557f3edf66faa1ccaba5dd8c203c21cc79f1e"
],
"path": "foo",
"rightnode": "f8bbb9024b10f93cdbb8d940337398291d40dea8"
}
Gregory Szorc
templates: add a stub template for json...
r24544
annotate/{revision}/{path} shows annotations for each line
$ request json-annotate/f8bbb9024b10/foo
200 Script output follows
Gregory Szorc
json: implement {fileannotate} template
r24715 {
"abspath": "foo",
"annotate": [
{
"abspath": "foo",
"author": "test",
"desc": "modify foo",
"line": "bar\n",
"lineno": 1,
"node": "f8bbb9024b10f93cdbb8d940337398291d40dea8",
"revdate": [
0.0,
0
],
"targetline": 1
}
],
"author": "test",
"children": [],
"date": [
0.0,
0
],
"desc": "modify foo",
"node": "f8bbb9024b10f93cdbb8d940337398291d40dea8",
"parents": [
"06e557f3edf66faa1ccaba5dd8c203c21cc79f1e"
],
"permissions": ""
}
Gregory Szorc
templates: add a stub template for json...
r24544
filelog/{revision}/{path} shows history of a single file
$ request json-filelog/f8bbb9024b10/foo
200 Script output follows
Laura Médioni
templates: add support for filelog webcommand in json style...
r29380 {
"entries": [
{
"bookmarks": [],
"branch": "default",
"date": [
0.0,
0
],
"desc": "modify foo",
"node": "f8bbb9024b10f93cdbb8d940337398291d40dea8",
"parents": [
"06e557f3edf66faa1ccaba5dd8c203c21cc79f1e"
],
"phase": "public",
"tags": [],
"user": "test"
},
{
"bookmarks": [],
"branch": "default",
"date": [
0.0,
0
],
"desc": "initial",
"node": "06e557f3edf66faa1ccaba5dd8c203c21cc79f1e",
"parents": [],
"phase": "public",
"tags": [],
"user": "test"
}
]
}
$ request json-filelog/cc725e08502a/da/foo
200 Script output follows
{
"entries": [
{
"bookmarks": [],
"branch": "default",
"date": [
0.0,
0
],
"desc": "another commit to da/foo",
"node": "f2890a05fea49bfaf9fb27ed5490894eba32da78",
"parents": [
"8d7c456572acf3557e8ed8a07286b10c408bcec5"
],
"phase": "draft",
"tags": [
"tag2"
],
"user": "test"
},
{
"bookmarks": [
"bookmark1"
],
"branch": "default",
"date": [
0.0,
0
],
"desc": "modify da/foo",
"node": "8d7c456572acf3557e8ed8a07286b10c408bcec5",
"parents": [
"06e557f3edf66faa1ccaba5dd8c203c21cc79f1e"
],
"phase": "public",
"tags": [],
"user": "test"
},
{
"bookmarks": [],
"branch": "default",
"date": [
0.0,
0
],
"desc": "initial",
"node": "06e557f3edf66faa1ccaba5dd8c203c21cc79f1e",
"parents": [],
"phase": "public",
"tags": [],
"user": "test"
}
]
}
Gregory Szorc
templates: add a stub template for json...
r24544
(archive/ doesn't use templating, so ignore it)
(static/ doesn't use templating, so ignore it)
graph/ shows information that can be used to render a graph of the DAG
$ request json-graph
200 Script output follows
av6
hgweb: implement json-graph...
r35390 {
"changeset_count": 10,
"changesets": [
{
"bookmarks": [],
"branch": "default",
"col": 0,
"color": 1,
"date": [
0.0,
0
],
"desc": "merge test-branch into default",
"edges": [
{
"bcolor": "",
"col": 0,
"color": 1,
"nextcol": 0,
"width": -1
},
{
"bcolor": "",
"col": 0,
"color": 1,
"nextcol": 1,
"width": -1
}
],
"node": "cc725e08502a79dd1eda913760fbe06ed7a9abc7",
"parents": [
"ceed296fe500c3fac9541e31dad860cb49c89e45",
"ed66c30e87eb65337c05a4229efaa5f1d5285a90"
],
"phase": "draft",
"row": 0,
"tags": [
"tip"
],
"user": "test"
},
{
"bookmarks": [],
"branch": "test-branch",
"col": 1,
"color": 2,
"date": [
0.0,
0
],
"desc": "another commit in test-branch",
"edges": [
{
"bcolor": "",
"col": 0,
"color": 1,
"nextcol": 0,
"width": -1
},
{
"bcolor": "",
"col": 1,
"color": 2,
"nextcol": 1,
"width": -1
}
],
"node": "ed66c30e87eb65337c05a4229efaa5f1d5285a90",
"parents": [
"6ab967a8ab3489227a83f80e920faa039a71819f"
],
"phase": "draft",
"row": 1,
"tags": [],
"user": "test"
},
{
"bookmarks": [],
"branch": "test-branch",
"col": 1,
"color": 2,
"date": [
0.0,
0
],
"desc": "create test branch",
"edges": [
{
"bcolor": "",
"col": 0,
"color": 1,
"nextcol": 0,
"width": -1
},
{
"bcolor": "",
"col": 1,
"color": 2,
"nextcol": 1,
"width": -1
}
],
"node": "6ab967a8ab3489227a83f80e920faa039a71819f",
"parents": [
"06e557f3edf66faa1ccaba5dd8c203c21cc79f1e"
],
"phase": "draft",
"row": 2,
"tags": [],
"user": "test"
},
{
"bookmarks": [
"bookmark2"
],
"branch": "default",
"col": 0,
"color": 1,
"date": [
0.0,
0
],
"desc": "create tag2",
"edges": [
{
"bcolor": "",
"col": 0,
"color": 1,
"nextcol": 0,
"width": -1
},
{
"bcolor": "",
"col": 1,
"color": 2,
"nextcol": 1,
"width": -1
}
],
"node": "ceed296fe500c3fac9541e31dad860cb49c89e45",
"parents": [
"f2890a05fea49bfaf9fb27ed5490894eba32da78"
],
"phase": "draft",
"row": 3,
"tags": [],
"user": "test"
},
{
"bookmarks": [],
"branch": "default",
"col": 0,
"color": 1,
"date": [
0.0,
0
],
"desc": "another commit to da/foo",
"edges": [
{
"bcolor": "",
"col": 0,
"color": 1,
"nextcol": 0,
"width": -1
},
{
"bcolor": "",
"col": 1,
"color": 2,
"nextcol": 1,
"width": -1
}
],
"node": "f2890a05fea49bfaf9fb27ed5490894eba32da78",
"parents": [
"93a8ce14f89156426b7fa981af8042da53f03aa0"
],
"phase": "draft",
"row": 4,
"tags": [
"tag2"
],
"user": "test"
},
{
"bookmarks": [],
"branch": "default",
"col": 0,
"color": 1,
"date": [
0.0,
0
],
"desc": "create tag",
"edges": [
{
"bcolor": "",
"col": 0,
"color": 1,
"nextcol": 0,
"width": -1
},
{
"bcolor": "",
"col": 1,
"color": 2,
"nextcol": 1,
"width": -1
}
],
"node": "93a8ce14f89156426b7fa981af8042da53f03aa0",
"parents": [
"78896eb0e102174ce9278438a95e12543e4367a7"
],
"phase": "public",
"row": 5,
"tags": [],
"user": "test"
},
{
"bookmarks": [],
"branch": "default",
"col": 0,
"color": 1,
"date": [
0.0,
0
],
"desc": "move foo",
"edges": [
{
"bcolor": "",
"col": 0,
"color": 1,
"nextcol": 0,
"width": -1
},
{
"bcolor": "",
"col": 1,
"color": 2,
"nextcol": 1,
"width": -1
}
],
"node": "78896eb0e102174ce9278438a95e12543e4367a7",
"parents": [
"8d7c456572acf3557e8ed8a07286b10c408bcec5"
],
"phase": "public",
"row": 6,
"tags": [
"tag1"
],
"user": "test"
},
{
"bookmarks": [
"bookmark1"
],
"branch": "default",
"col": 0,
"color": 1,
"date": [
0.0,
0
],
"desc": "modify da/foo",
"edges": [
{
"bcolor": "",
"col": 0,
"color": 1,
"nextcol": 0,
"width": -1
},
{
"bcolor": "",
"col": 1,
"color": 2,
"nextcol": 1,
"width": -1
}
],
"node": "8d7c456572acf3557e8ed8a07286b10c408bcec5",
"parents": [
"f8bbb9024b10f93cdbb8d940337398291d40dea8"
],
"phase": "public",
"row": 7,
"tags": [],
"user": "test"
},
{
"bookmarks": [],
"branch": "default",
"col": 0,
"color": 1,
"date": [
0.0,
0
],
"desc": "modify foo",
"edges": [
{
"bcolor": "",
"col": 0,
"color": 1,
"nextcol": 0,
"width": -1
},
{
"bcolor": "",
"col": 1,
"color": 2,
"nextcol": 0,
"width": -1
}
],
"node": "f8bbb9024b10f93cdbb8d940337398291d40dea8",
"parents": [
"06e557f3edf66faa1ccaba5dd8c203c21cc79f1e"
],
"phase": "public",
"row": 8,
"tags": [],
"user": "test"
},
{
"bookmarks": [],
"branch": "default",
"col": 0,
"color": 2,
"date": [
0.0,
0
],
"desc": "initial",
"edges": [],
"node": "06e557f3edf66faa1ccaba5dd8c203c21cc79f1e",
"parents": [],
"phase": "public",
"row": 9,
"tags": [],
"user": "test"
}
],
"node": "cc725e08502a79dd1eda913760fbe06ed7a9abc7"
}
Gregory Szorc
templates: add a stub template for json...
r24544
help/ shows help topics
$ request json-help
200 Script output follows
Gregory Szorc
json: implement {helptopics} template
r24590 {
"earlycommands": [
{
"summary": "add the specified files on the next commit",
"topic": "add"
},
{
"summary": "show changeset information by line for each file",
"topic": "annotate"
},
{
"summary": "make a copy of an existing repository",
"topic": "clone"
},
{
"summary": "commit the specified files or all outstanding changes",
"topic": "commit"
},
{
"summary": "diff repository (or selected files)",
"topic": "diff"
},
{
"summary": "dump the header and diffs for one or more changesets",
"topic": "export"
},
{
"summary": "forget the specified files on the next commit",
"topic": "forget"
},
{
"summary": "create a new repository in the given directory",
"topic": "init"
},
{
"summary": "show revision history of entire repository or files",
"topic": "log"
},
{
"summary": "merge another revision into working directory",
"topic": "merge"
},
{
"summary": "pull changes from the specified source",
"topic": "pull"
},
{
"summary": "push changes to the specified destination",
"topic": "push"
},
{
"summary": "remove the specified files on the next commit",
"topic": "remove"
},
{
"summary": "start stand-alone webserver",
"topic": "serve"
},
{
"summary": "show changed files in the working directory",
"topic": "status"
},
{
"summary": "summarize working directory state",
"topic": "summary"
},
{
"summary": "update working directory (or switch revisions)",
"topic": "update"
}
],
"othercommands": [
{
"summary": "add all new files, delete all missing files",
"topic": "addremove"
},
{
"summary": "create an unversioned archive of a repository revision",
"topic": "archive"
},
{
"summary": "reverse effect of earlier changeset",
"topic": "backout"
},
{
"summary": "subdivision search of changesets",
"topic": "bisect"
},
{
"summary": "create a new bookmark or list existing bookmarks",
"topic": "bookmarks"
},
{
"summary": "set or show the current branch name",
"topic": "branch"
},
{
"summary": "list repository named branches",
"topic": "branches"
},
{
Gregory Szorc
commands: update help for "bundle"...
r31794 "summary": "create a bundle file",
Gregory Szorc
json: implement {helptopics} template
r24590 "topic": "bundle"
},
{
"summary": "output the current or given revision of files",
"topic": "cat"
},
{
"summary": "show combined config settings from all hgrc files",
"topic": "config"
},
{
"summary": "mark files as copied for the next commit",
"topic": "copy"
},
{
"summary": "list tracked files",
"topic": "files"
},
{
"summary": "copy changes from other branches onto the current branch",
"topic": "graft"
},
{
Kevin Bullock
grep: rewrite help to better document current (confusing) behavior
r30009 "summary": "search revision history for a pattern in specified files",
Gregory Szorc
json: implement {helptopics} template
r24590 "topic": "grep"
},
{
"summary": "show branch heads",
"topic": "heads"
},
{
"summary": "show help for a given topic or a help overview",
"topic": "help"
},
{
"summary": "identify the working directory or specified revision",
"topic": "identify"
},
{
"summary": "import an ordered set of patches",
"topic": "import"
},
{
"summary": "show new changesets found in source",
"topic": "incoming"
},
{
"summary": "output the current or given revision of the project manifest",
"topic": "manifest"
},
{
"summary": "show changesets not found in the destination",
"topic": "outgoing"
},
{
"summary": "show aliases for remote repositories",
"topic": "paths"
},
{
"summary": "set or show the current phase name",
"topic": "phase"
},
{
"summary": "roll back an interrupted transaction",
"topic": "recover"
},
{
"summary": "rename files; equivalent of copy + remove",
"topic": "rename"
},
{
"summary": "redo merges or set/view the merge status of files",
"topic": "resolve"
},
{
"summary": "restore files to their checkout state",
"topic": "revert"
},
{
"summary": "print the root (top) of the current working directory",
"topic": "root"
},
{
"summary": "add one or more tags for the current or given revision",
"topic": "tag"
},
{
"summary": "list repository tags",
"topic": "tags"
},
{
Gregory Szorc
commands: update help for "unbundle"...
r31795 "summary": "apply one or more bundle files",
Gregory Szorc
json: implement {helptopics} template
r24590 "topic": "unbundle"
},
{
"summary": "verify the integrity of the repository",
"topic": "verify"
},
{
"summary": "output version and copyright information",
"topic": "version"
}
],
"topics": [
{
Gregory Szorc
help: document bundle specifications...
r31793 "summary": "Bundle File Formats",
"topic": "bundlespec"
},
{
Pierre-Yves David
color: update the help table...
r31129 "summary": "Colorizing Outputs",
"topic": "color"
},
{
Gregory Szorc
json: implement {helptopics} template
r24590 "summary": "Configuration Files",
"topic": "config"
},
{
"summary": "Date Formats",
"topic": "dates"
},
{
David Demelier
help: add new deprecated topic...
r38019 "summary": "Deprecated Features",
"topic": "deprecated"
},
{
Gregory Szorc
json: implement {helptopics} template
r24590 "summary": "Diff Formats",
"topic": "diffs"
},
{
"summary": "Environment Variables",
"topic": "environment"
},
{
"summary": "Using Additional Features",
"topic": "extensions"
},
{
"summary": "Specifying File Sets",
"topic": "filesets"
},
{
Rodrigo Damazio Bovendorp
help: adding a topic on flags...
r35036 "summary": "Command-line flags",
"topic": "flags"
},
{
Gregory Szorc
json: implement {helptopics} template
r24590 "summary": "Glossary",
"topic": "glossary"
},
{
"summary": "Syntax for Mercurial Ignore Files",
"topic": "hgignore"
},
{
"summary": "Configuring hgweb",
"topic": "hgweb"
},
{
Gregory Szorc
help: add "internals" topic...
r27376 "summary": "Technical implementation topics",
"topic": "internals"
},
{
Gregory Szorc
json: implement {helptopics} template
r24590 "summary": "Merge Tools",
"topic": "merge-tools"
},
{
Augie Fackler
pager: move most help to a new help topic and deprecate extension
r31061 "summary": "Pager Support",
"topic": "pager"
},
{
Gregory Szorc
json: implement {helptopics} template
r24590 "summary": "File Name Patterns",
"topic": "patterns"
},
{
"summary": "Working with Phases",
"topic": "phases"
},
{
Martin von Zweigbergk
help: merge revsets.txt into revisions.txt...
r30769 "summary": "Specifying Revisions",
Gregory Szorc
json: implement {helptopics} template
r24590 "topic": "revisions"
},
{
Gregory Szorc
help: scripting help topic...
r25881 "summary": "Using Mercurial from scripts and automation",
"topic": "scripting"
},
{
Gregory Szorc
json: implement {helptopics} template
r24590 "summary": "Subrepositories",
"topic": "subrepos"
},
{
"summary": "Template Usage",
"topic": "templating"
},
{
"summary": "URL Paths",
"topic": "urls"
}
]
}
Gregory Szorc
templates: add a stub template for json...
r24544
help/{topic} shows an individual help topic
$ request json-help/phases
200 Script output follows
Gregory Szorc
json: implement {help} template...
r24591 {
"rawdoc": "Working with Phases\n*", (glob)
"topic": "phases"
}
av6
tests: move JSON escape test to test-hgweb-json.t...
r35149
Yuya Nishihara
hgweb: add error template to json so it won't crash
r39505 Error page shouldn't crash
$ request json-changeset/deadbeef
404 Not Found
{
"error": "unknown revision 'deadbeef'"
}
[1]
av6
tests: move JSON escape test to test-hgweb-json.t...
r35149 Commit message with Japanese Kanji 'Noh', which ends with '\x5c'
$ echo foo >> da/foo
$ HGENCODING=cp932 hg ci -m `$PYTHON -c 'print("\x94\x5c")'`
Commit message with null character
$ echo foo >> da/foo
>>> open('msg', 'wb').write('commit with null character: \0\n')
$ hg ci -l msg
$ rm msg
Stop and restart with HGENCODING=cp932
$ killdaemons.py
$ HGENCODING=cp932 hg serve -p $HGPORT -d --pid-file=hg.pid \
> -A access.log -E error.log
$ cat hg.pid >> $DAEMON_PIDS
Test json escape of multibyte characters
$ request json-filelog/tip/da/foo?revcount=2 | grep '"desc":'
"desc": "commit with null character: \u0000",
"desc": "\u80fd",