Mercurial > hg
changeset 24589:30a737ae9b7d
json: implement {manifest} template
Property naming was borrowed from `hg files -Tjson`.
We omit branch because, again, representation of branches in this
template is wonky.
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Wed, 01 Apr 2015 22:04:03 -0700 |
parents | 0bf54479a9eb |
children | 0bb733dfcabe |
files | mercurial/templates/json/map tests/test-hgweb-json.t |
diffstat | 2 files changed, 84 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/templates/json/map Tue Mar 31 22:53:48 2015 -0700 +++ b/mercurial/templates/json/map Wed Apr 01 22:04:03 2015 -0700 @@ -29,7 +29,27 @@ changesetbookmark = '{bookmark|json}' changesettag = '{tag|json}' changesetparent = '{node|json}' -manifest = '"not yet implemented"' +manifest = '\{ + "node": {node|json}, + "abspath": {path|json}, + "directories": [{join(dentries%direntry, ", ")}], + "files": [{join(fentries%fileentry, ", ")}], + "bookmarks": [{join(bookmarks%name, ", ")}], + "tags": [{join(tags%name, ", ")}] + }' +name = '{name|json}' +direntry = '\{ + "abspath": {path|json}, + "basename": {basename|json}, + "emptydirs": {emptydirs|json} + }' +fileentry = '\{ + "abspath": {file|json}, + "basename": {basename|json}, + "date": {date|json}, + "size": {size|json}, + "flags": {permissions|json} + }' tags = '\{ "node": {node|json}, "tags": [{join(entriesnotip%tagentry, ", ")}]
--- a/tests/test-hgweb-json.t Tue Mar 31 22:53:48 2015 -0700 +++ b/tests/test-hgweb-json.t Wed Apr 01 22:04:03 2015 -0700 @@ -119,10 +119,46 @@ file/{revision} shows root directory info - $ request json-file/06e557f3edf6 + $ request json-file/cc725e08502a 200 Script output follows - "not yet implemented" + { + "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" + ] + } changelog/ shows information about several changesets @@ -522,7 +558,31 @@ $ request json-manifest/06e557f3edf6/ 200 Script output follows - "not yet implemented" + { + "abspath": "/", + "bookmarks": [], + "directories": [ + { + "abspath": "/da", + "basename": "da", + "emptydirs": "" + } + ], + "files": [ + { + "abspath": "foo", + "basename": "foo", + "date": [ + 0.0, + 0 + ], + "flags": "", + "size": 4 + } + ], + "node": "06e557f3edf66faa1ccaba5dd8c203c21cc79f1e", + "tags": [] + } tags/ shows tags info