# HG changeset patch # User Gregory Szorc # Date 1428719213 14400 # Node ID 84859415a4c9918344887f1593702dcecbcbabd9 # Parent 2f43f8cf82198bbe22826cf84ba8278ee7de2395 json: implement {comparison} template Similar to {filediff}, we abbreviate some property names to cut down on string bloat. diff -r 2f43f8cf8219 -r 84859415a4c9 mercurial/templates/json/map --- a/mercurial/templates/json/map Fri Apr 10 22:39:22 2015 -0400 +++ b/mercurial/templates/json/map Fri Apr 10 22:26:53 2015 -0400 @@ -112,7 +112,28 @@ "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 -r 2f43f8cf8219 -r 84859415a4c9 tests/test-hgweb-json.t --- a/tests/test-hgweb-json.t Fri Apr 10 22:39:22 2015 -0400 +++ b/tests/test-hgweb-json.t Fri Apr 10 22:26:53 2015 -0400 @@ -730,7 +730,35 @@ $ 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