# HG changeset patch # User Gregory Szorc # Date 2015-04-11 02:26:53 # Node ID 84859415a4c9918344887f1593702dcecbcbabd9 # Parent 2f43f8cf82198bbe22826cf84ba8278ee7de2395 json: implement {comparison} template Similar to {filediff}, we abbreviate some property names to cut down on string bloat. diff --git a/mercurial/templates/json/map b/mercurial/templates/json/map --- a/mercurial/templates/json/map +++ b/mercurial/templates/json/map @@ -112,7 +112,28 @@ diffline = '\{ "n": {lineno|json}, "l": {line|json} }' -filecomparison = '"not yet implemented"' +filecomparison = '\{ + "path": {file|json}, + "node": {node|json}, + "date": {date|json}, + "desc": {desc|json}, + "author": {author|json}, + "parents": [{join(parent%changesetparent, ", ")}], + "children": [{join(child%changesetparent, ", ")}], + "leftnode": {leftnode|json}, + "rightnode": {rightnode|json}, + "comparison": [{join(comparison, ", ")}] + }' +comparisonblock = '\{ + "lines": [{join(lines, ", ")}] + }' +comparisonline = '\{ + "t": {type|json}, + "ln": {leftlineno|json}, + "ll": {leftline|json}, + "rn": {rightlineno|json}, + "rl": {rightline|json} + }' fileannotate = '"not yet implemented"' filelog = '"not yet implemented"' graph = '"not yet implemented"' 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 @@ -730,7 +730,35 @@ comparison/{revision}/{path} shows infor $ request json-comparison/f8bbb9024b10/foo 200 Script output follows - "not yet implemented" + { + "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" + } annotate/{revision}/{path} shows annotations for each line