[PATCH 1 of 5 V3] templates: add support for filelog webcommand in json style
Laura Médioni
laura.medioni at logilab.fr
Mon Jun 20 09:25:24 UTC 2016
# HG changeset patch
# User Laura Médioni <laura.medioni at logilab.fr>
# Date 1464946102 -7200
# Fri Jun 03 11:28:22 2016 +0200
# Node ID 53f73556559ade2e726e9355b521dcbd95ae4dae
# Parent 4e6e280e238fa885df9e0e600dc5915a71c8a37a
templates: add support for filelog webcommand in json style
Modify changelistentry structure to also deliver phase and branch data and use
either 'parents' or 'allparents' depending on what is defined in the view, in
order to reuse it in filelog structure.
diff --git a/mercurial/templates/json/map b/mercurial/templates/json/map
--- a/mercurial/templates/json/map
+++ b/mercurial/templates/json/map
@@ -7,14 +7,17 @@ changelog = changelist.tmpl
shortlog = changelist.tmpl
changelistentry = '\{
"node": {node|json},
"date": {date|json},
"desc": {desc|utf8|json},
+ "branch": {if(branch, branch%changesetbranch, "default"|json)},
"bookmarks": [{join(bookmarks%changelistentryname, ", ")}],
"tags": [{join(tags%changelistentryname, ", ")}],
"user": {author|utf8|json},
- "parents": [{join(allparents%changesetparent, ", ")}]
+ "phase": {phase|json},
+ "parents": [{if(allparents, join(allparents%changesetparent, ", "),
+ join(parent%changesetparent, ", "))}]
}'
changelistentryname = '{name|utf8|json}'
changeset = '\{
"node": {node|json},
"date": {date|json},
@@ -154,11 +157,13 @@ fileannotation = '\{
"targetline": {targetline|json},
"line": {line|json},
"lineno": {lineno|json},
"revdate": {revdate|json}
}'
-filelog = '"not yet implemented"'
+filelog = '\{
+ "entries": [{join(entries%changelistentry, ", ")}]
+ }'
graph = '"not yet implemented"'
helptopics = '\{
"topics": [{join(topics%helptopicentry, ", ")}],
"earlycommands": [{join(earlycommands%helptopicentry, ", ")}],
"othercommands": [{join(othercommands%helptopicentry, ", ")}]
diff --git a/tests/test-hgweb-json.t b/tests/test-hgweb-json.t
--- a/tests/test-hgweb-json.t
+++ b/tests/test-hgweb-json.t
@@ -167,154 +167,174 @@ changelog/ shows information about sever
{
"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"
@@ -328,31 +348,35 @@ changelog/{revision} shows information s
{
"changeset_count": 10,
"changesets": [
{
"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": "f8bbb9024b10f93cdbb8d940337398291d40dea8"
@@ -366,154 +390,174 @@ shortlog/ shows information about a set
{
"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"
@@ -860,11 +904,102 @@ annotate/{revision}/{path} shows annotat
filelog/{revision}/{path} shows history of a single file
$ request json-filelog/f8bbb9024b10/foo
200 Script output follows
- "not yet implemented"
+ {
+ "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"
+ }
+ ]
+ }
(archive/ doesn't use templating, so ignore it)
(static/ doesn't use templating, so ignore it)
More information about the Mercurial-devel
mailing list