diff mercurial/templates/json/map @ 24713:2f43f8cf8219

json: implement {filediff} template Single letter properties are used to keep payload size down, as diff representation can be quite large and longer property names can create a lot of extra work for parsers. Rename is not yet captured. This can be done in a follow-up.
author Gregory Szorc <gregory.szorc@gmail.com>
date Fri, 10 Apr 2015 22:39:22 -0400
parents 517f3e190a5d
children 84859415a4c9
line wrap: on
line diff
--- a/mercurial/templates/json/map	Fri Apr 10 22:34:12 2015 -0400
+++ b/mercurial/templates/json/map	Fri Apr 10 22:39:22 2015 -0400
@@ -78,7 +78,40 @@
   "status": {status|json}
   }'
 summary = '"not yet implemented"'
-filediff = '"not yet implemented"'
+filediff = '\{
+  "path": {file|json},
+  "node": {node|json},
+  "date": {date|json},
+  "desc": {desc|json},
+  "author": {author|json},
+  "parents": [{join(parent%changesetparent, ", ")}],
+  "children": [{join(child%changesetparent, ", ")}],
+  "diff": [{join(diff%diffblock, ", ")}]
+  }'
+diffblock = '\{
+  "blockno": {blockno|json},
+  "lines": [{join(lines, ", ")}]
+  }'
+difflineplus = '\{
+  "t": "+",
+  "n": {lineno|json},
+  "l": {line|json}
+  }'
+difflineminus = '\{
+  "t": "-",
+  "n": {lineno|json},
+  "l": {line|json}
+  }'
+difflineat = '\{
+  "t": "@",
+  "n": {lineno|json},
+  "l": {line|json}
+  }'
+diffline = '\{
+  "t": "",
+  "n": {lineno|json},
+  "l": {line|json}
+  }'
 filecomparison = '"not yet implemented"'
 fileannotate = '"not yet implemented"'
 filelog = '"not yet implemented"'