b/mercurial/templates/map-cmdline.json
new file mode 100644
@@ -0,0 +1,41 @@
+header = '[\n'
+# Alas, changesets do not follow the
+# start_changesets, no_changesets, changeset, last_changeset, end_changesets
+# pattern...
+# And JSON obsessively INSISTS you have something after the final comma!
+footer = 'null]\n'
+
+# The extras field stinks, would need to rewrite showextras python method!
+changeset = ' \{\n "revision": "{rev}",\n "node":
"{node}",\n "branches": "{branches}",\n "bookmarks":
"{bookmarks}",\n "tags": "{tags}",\n "parents": {parents},\n
"email": "{author|email|jsonescape}",\n "author":
"{author|person|jsonescape}",\n "date": "{date|rfc3339date}",\n
"desc": "{desc|jsonescape}",\n "file_adds": {file_adds},\n
"file_dels": {file_dels},\n "file_mods": {file_mods},\n
"file_copies": {file_copies},\n "extras": {extras|json}\n },\n'
+
+no_parents = '[]'
+start_parents = '[\n'
+parent = ' \{"rev": {rev}, "node": "{node}"},\n'
+last_parent = ' \{"rev": {rev}, "node": "{node}"}\n'
+end_parents = ' ]'
+
+no_file_adds = '[]'
+start_file_adds = '[\n'
+file_add = ' "{file_add|jsonescape}",\n'
+last_file_add = ' "{file_add|jsonescape}"\n'
+end_file_adds = ' ]'
+
+
+no_file_dels = '[]'
+start_file_dels = '[\n'
+file_del = ' "{file_del|jsonescape}",\n'
+last_file_del = ' "{file_del|jsonescape}"\n'
+end_file_dels = ' ]'
+
+no_file_mods = '[]'
+start_file_mods = '[\n'
+file_mod = ' "{file_mod|jsonescape}",\n'
+last_file_mod = ' "{file_mod|jsonescape}"\n'
+end_file_mods = ' ]'
+
+no_file_copies = '[]'
+start_file_copies = '[\n'
+file_copy = ' \{\n "source":
"{source|jsonescape}",\n "name": "{name|jsonescape}"\n
},\n'
+last_file_copy = ' \{\n "source":
"{source|jsonescape}",\n "name": "{name|jsonescape}"\n
}\n'
+end_file_copies = ' ]'
+
@@ -459,7 +459,7 @@
$ hg log --style notexist
abort: style 'notexist' not found
- (available styles: bisect, changelog, compact, default, phases, xml)
+ (available styles: bisect, changelog, compact, default, json, phases, xml)
[255]
Error if style missing key:
@@ -88,7 +88,7 @@
$ hg log -f -l1 --style something
abort: style 'something' not found
- (available styles: bisect, changelog, compact, default, phases, xml)
+ (available styles: bisect, changelog, compact, default, json, phases, xml)
[255]
-f, phases style
@@ -1367,3 +1367,38 @@
$ cd ..
+
+Check --style=json
+
+ $ hg init checkjsonstyle
+ $ cd checkjsonstyle
+ $ echo 1 > a.c
+ $ hg add a.c
+ $ hg commit -m message a.c
+ $ hg log --style=json
+ [
+ {
+ "revision": "0",
+ "node": "c1fc6ccda7a8fd4f09adf2dc7533fe259446ff7c",
+ "branches": "",
+ "bookmarks": "",
+ "tags": "tip",
+ "parents": [],
+ "email": "test",
+ "author": "test",
+ "date": "1970-01-01T00:00:00+00:00",
+ "desc": "message",
+ "file_adds": [
+ "a.c"
+ ],
+ "file_dels": [],
+ "file_mods": [],
+ "file_copies": [],
+ "extras": [["branch=default"]]
+ },
+ null]
+
+
+
+
+