[PATCH 3 of 4] logcmdutil: rewrite jsonchangeset printer to be backed by jsonformatter
Yuya Nishihara
yuya at tcha.org
Sat Apr 14 00:21:17 EDT 2018
# HG changeset patch
# User Yuya Nishihara <yuya at tcha.org>
# Date 1523627234 -32400
# Fri Apr 13 22:47:14 2018 +0900
# Node ID 60b88ab0b4238f95438c3ad2a3c9fc802da84d94
# Parent 7a8009978a8f5f0a0b34d356fa4f506065f572f8
logcmdutil: rewrite jsonchangeset printer to be backed by jsonformatter
This is a bit slower than the original implementation, but I don't think
that would actually matter. It's still faster than full templating.
$ hg log -Tjson -r0:5000 --time > /dev/null
(orig) time: real 1.550 secs (user 1.500+0.000 sys 0.040+0.000)
(new) time: real 1.810 secs (user 1.740+0.000 sys 0.070+0.000)
cf.
$ hg log -Tdefault -r0:5000 --time > /dev/null
time: real 4.980 secs (user 4.850+0.000 sys 0.130+0.000)
$ hg log -r0:5000 --time > /dev/null
time: real 2.340 secs (user 2.220+0.000 sys 0.100+0.000)
$ hg log -r0:5000 -q --time > /dev/null
time: real 0.750 secs (user 0.670+0.000 sys 0.070+0.000)
The test output changes because keys are sorted alphabetically.
diff --git a/mercurial/logcmdutil.py b/mercurial/logcmdutil.py
--- a/mercurial/logcmdutil.py
+++ b/mercurial/logcmdutil.py
@@ -12,13 +12,11 @@ import os
from .i18n import _
from .node import (
- hex,
nullid,
)
from . import (
dagop,
- encoding,
error,
formatter,
graphmod,
@@ -317,78 +315,56 @@ class jsonchangeset(changesetprinter):
def __init__(self, ui, repo, differ=None, diffopts=None, buffered=False):
changesetprinter.__init__(self, ui, repo, differ, diffopts, buffered)
- self._first = True
+ self._fm = formatter.jsonformatter(ui, ui, 'log', {})
def close(self):
- if not self._first:
- self.ui.write("\n]\n")
- else:
- self.ui.write("[]\n")
+ self._fm.end()
def _show(self, ctx, copies, props):
'''show a single changeset or file revision'''
+ fm = self._fm
+ fm.startitem()
+
+ # TODO: maybe this should be wdirrev/wdirnode?
rev = ctx.rev()
if rev is None:
- jrev = jnode = 'null'
+ hexnode = None
else:
- jrev = '%d' % rev
- jnode = '"%s"' % hex(ctx.node())
- j = encoding.jsonescape
-
- if self._first:
- self.ui.write("[\n {")
- self._first = False
- else:
- self.ui.write(",\n {")
+ hexnode = fm.hexfunc(ctx.node())
+ fm.data(rev=rev,
+ node=hexnode)
if self.ui.quiet:
- self.ui.write(('\n "rev": %s') % jrev)
- self.ui.write((',\n "node": %s') % jnode)
- self.ui.write('\n }')
return
- self.ui.write(('\n "rev": %s') % jrev)
- self.ui.write((',\n "node": %s') % jnode)
- self.ui.write((',\n "branch": "%s"') % j(ctx.branch()))
- self.ui.write((',\n "phase": "%s"') % ctx.phasestr())
- self.ui.write((',\n "user": "%s"') % j(ctx.user()))
- self.ui.write((',\n "date": [%d, %d]') % ctx.date())
- self.ui.write((',\n "desc": "%s"') % j(ctx.description()))
-
- self.ui.write((',\n "bookmarks": [%s]') %
- ", ".join('"%s"' % j(b) for b in ctx.bookmarks()))
- self.ui.write((',\n "tags": [%s]') %
- ", ".join('"%s"' % j(t) for t in ctx.tags()))
- self.ui.write((',\n "parents": [%s]') %
- ", ".join('"%s"' % c.hex() for c in ctx.parents()))
+ fm.data(branch=ctx.branch(),
+ phase=ctx.phasestr(),
+ user=ctx.user(),
+ date=fm.formatdate(ctx.date()),
+ desc=ctx.description(),
+ bookmarks=fm.formatlist(ctx.bookmarks(), name='bookmark'),
+ tags=fm.formatlist(ctx.tags(), name='tag'),
+ parents=fm.formatlist([fm.hexfunc(c.node())
+ for c in ctx.parents()], name='node'))
if self.ui.debugflag:
if rev is None:
- jmanifestnode = 'null'
+ hexnode = None
else:
- jmanifestnode = '"%s"' % hex(ctx.manifestnode())
- self.ui.write((',\n "manifest": %s') % jmanifestnode)
-
- self.ui.write((',\n "extra": {%s}') %
- ", ".join('"%s": "%s"' % (j(k), j(v))
- for k, v in ctx.extra().items()))
+ hexnode = fm.hexfunc(ctx.manifestnode())
+ fm.data(manifest=hexnode,
+ extra=fm.formatdict(ctx.extra()))
files = ctx.p1().status(ctx)
- self.ui.write((',\n "modified": [%s]') %
- ", ".join('"%s"' % j(f) for f in files[0]))
- self.ui.write((',\n "added": [%s]') %
- ", ".join('"%s"' % j(f) for f in files[1]))
- self.ui.write((',\n "removed": [%s]') %
- ", ".join('"%s"' % j(f) for f in files[2]))
+ fm.data(modified=fm.formatlist(files[0], name='file'),
+ added=fm.formatlist(files[1], name='file'),
+ removed=fm.formatlist(files[2], name='file'))
elif self.ui.verbose:
- self.ui.write((',\n "files": [%s]') %
- ", ".join('"%s"' % j(f) for f in ctx.files()))
-
+ fm.data(files=fm.formatlist(ctx.files(), name='file'))
if copies:
- self.ui.write((',\n "copies": {%s}') %
- ", ".join('"%s": "%s"' % (j(k), j(v))
- for k, v in copies))
+ fm.data(copies=fm.formatdict(copies,
+ key='name', value='source'))
stat = self.diffopts.get('stat')
diff = self.diffopts.get('patch')
@@ -396,14 +372,11 @@ class jsonchangeset(changesetprinter):
if stat:
self.ui.pushbuffer()
self._differ.showdiff(self.ui, ctx, diffopts, stat=True)
- self.ui.write((',\n "diffstat": "%s"')
- % j(self.ui.popbuffer()))
+ fm.data(diffstat=self.ui.popbuffer())
if diff:
self.ui.pushbuffer()
self._differ.showdiff(self.ui, ctx, diffopts, stat=False)
- self.ui.write((',\n "diff": "%s"') % j(self.ui.popbuffer()))
-
- self.ui.write("\n }")
+ fm.data(diff=self.ui.popbuffer())
class changesettemplater(changesetprinter):
'''format changeset information.
diff --git a/tests/test-command-template.t b/tests/test-command-template.t
--- a/tests/test-command-template.t
+++ b/tests/test-command-template.t
@@ -853,32 +853,33 @@ Test xml styles:
Test JSON style:
$ hg log -k nosuch -Tjson
- []
+ [
+ ]
$ hg log -qr . -Tjson
[
{
- "rev": 8,
- "node": "95c24699272ef57d062b8bccc32c878bf841784a"
+ "node": "95c24699272ef57d062b8bccc32c878bf841784a",
+ "rev": 8
}
]
$ hg log -vpr . -Tjson --stat
[
{
- "rev": 8,
- "node": "95c24699272ef57d062b8bccc32c878bf841784a",
+ "bookmarks": [],
"branch": "default",
- "phase": "draft",
- "user": "test",
"date": [1577872860, 0],
"desc": "third",
- "bookmarks": [],
- "tags": ["tip"],
+ "diff": "diff -r 29114dbae42b -r 95c24699272e fourth\n--- /dev/null\tThu Jan 01 00:00:00 1970 +0000\n+++ b/fourth\tWed Jan 01 10:01:00 2020 +0000\n@@ -0,0 +1,1 @@\n+second\ndiff -r 29114dbae42b -r 95c24699272e second\n--- a/second\tMon Jan 12 13:46:40 1970 +0000\n+++ /dev/null\tThu Jan 01 00:00:00 1970 +0000\n@@ -1,1 +0,0 @@\n-second\ndiff -r 29114dbae42b -r 95c24699272e third\n--- /dev/null\tThu Jan 01 00:00:00 1970 +0000\n+++ b/third\tWed Jan 01 10:01:00 2020 +0000\n@@ -0,0 +1,1 @@\n+third\n",
+ "diffstat": " fourth | 1 +\n second | 1 -\n third | 1 +\n 3 files changed, 2 insertions(+), 1 deletions(-)\n",
+ "files": ["fourth", "second", "third"],
+ "node": "95c24699272ef57d062b8bccc32c878bf841784a",
"parents": ["29114dbae42b9f078cf2714dbe3a86bba8ec7453"],
- "files": ["fourth", "second", "third"],
- "diffstat": " fourth | 1 +\n second | 1 -\n third | 1 +\n 3 files changed, 2 insertions(+), 1 deletions(-)\n",
- "diff": "diff -r 29114dbae42b -r 95c24699272e fourth\n--- /dev/null\tThu Jan 01 00:00:00 1970 +0000\n+++ b/fourth\tWed Jan 01 10:01:00 2020 +0000\n@@ -0,0 +1,1 @@\n+second\ndiff -r 29114dbae42b -r 95c24699272e second\n--- a/second\tMon Jan 12 13:46:40 1970 +0000\n+++ /dev/null\tThu Jan 01 00:00:00 1970 +0000\n@@ -1,1 +0,0 @@\n-second\ndiff -r 29114dbae42b -r 95c24699272e third\n--- /dev/null\tThu Jan 01 00:00:00 1970 +0000\n+++ b/third\tWed Jan 01 10:01:00 2020 +0000\n@@ -0,0 +1,1 @@\n+third\n"
+ "phase": "draft",
+ "rev": 8,
+ "tags": ["tip"],
+ "user": "test"
}
]
@@ -886,330 +887,330 @@ honor --git but not format-breaking diff
$ hg --config diff.noprefix=True log --git -vpr . -Tjson
[
{
- "rev": 8,
- "node": "95c24699272ef57d062b8bccc32c878bf841784a",
+ "bookmarks": [],
"branch": "default",
- "phase": "draft",
- "user": "test",
"date": [1577872860, 0],
"desc": "third",
- "bookmarks": [],
- "tags": ["tip"],
+ "diff": "diff --git a/second b/fourth\nrename from second\nrename to fourth\ndiff --git a/third b/third\nnew file mode 100644\n--- /dev/null\n+++ b/third\n@@ -0,0 +1,1 @@\n+third\n",
+ "files": ["fourth", "second", "third"],
+ "node": "95c24699272ef57d062b8bccc32c878bf841784a",
"parents": ["29114dbae42b9f078cf2714dbe3a86bba8ec7453"],
- "files": ["fourth", "second", "third"],
- "diff": "diff --git a/second b/fourth\nrename from second\nrename to fourth\ndiff --git a/third b/third\nnew file mode 100644\n--- /dev/null\n+++ b/third\n@@ -0,0 +1,1 @@\n+third\n"
+ "phase": "draft",
+ "rev": 8,
+ "tags": ["tip"],
+ "user": "test"
}
]
$ hg log -T json
[
{
- "rev": 8,
- "node": "95c24699272ef57d062b8bccc32c878bf841784a",
+ "bookmarks": [],
"branch": "default",
- "phase": "draft",
- "user": "test",
"date": [1577872860, 0],
"desc": "third",
- "bookmarks": [],
+ "node": "95c24699272ef57d062b8bccc32c878bf841784a",
+ "parents": ["29114dbae42b9f078cf2714dbe3a86bba8ec7453"],
+ "phase": "draft",
+ "rev": 8,
"tags": ["tip"],
- "parents": ["29114dbae42b9f078cf2714dbe3a86bba8ec7453"]
+ "user": "test"
},
{
- "rev": 7,
- "node": "29114dbae42b9f078cf2714dbe3a86bba8ec7453",
+ "bookmarks": [],
"branch": "default",
- "phase": "draft",
- "user": "User Name <user at hostname>",
"date": [1000000, 0],
"desc": "second",
- "bookmarks": [],
+ "node": "29114dbae42b9f078cf2714dbe3a86bba8ec7453",
+ "parents": ["0000000000000000000000000000000000000000"],
+ "phase": "draft",
+ "rev": 7,
"tags": [],
- "parents": ["0000000000000000000000000000000000000000"]
+ "user": "User Name <user at hostname>"
},
{
- "rev": 6,
- "node": "d41e714fe50d9e4a5f11b4d595d543481b5f980b",
+ "bookmarks": [],
"branch": "default",
- "phase": "draft",
- "user": "person",
"date": [1500001, 0],
"desc": "merge",
- "bookmarks": [],
+ "node": "d41e714fe50d9e4a5f11b4d595d543481b5f980b",
+ "parents": ["13207e5a10d9fd28ec424934298e176197f2c67f", "bbe44766e73d5f11ed2177f1838de10c53ef3e74"],
+ "phase": "draft",
+ "rev": 6,
"tags": [],
- "parents": ["13207e5a10d9fd28ec424934298e176197f2c67f", "bbe44766e73d5f11ed2177f1838de10c53ef3e74"]
+ "user": "person"
},
{
- "rev": 5,
- "node": "13207e5a10d9fd28ec424934298e176197f2c67f",
+ "bookmarks": [],
"branch": "default",
- "phase": "draft",
- "user": "person",
"date": [1500000, 0],
"desc": "new head",
- "bookmarks": [],
+ "node": "13207e5a10d9fd28ec424934298e176197f2c67f",
+ "parents": ["10e46f2dcbf4823578cf180f33ecf0b957964c47"],
+ "phase": "draft",
+ "rev": 5,
"tags": [],
- "parents": ["10e46f2dcbf4823578cf180f33ecf0b957964c47"]
+ "user": "person"
},
{
- "rev": 4,
- "node": "bbe44766e73d5f11ed2177f1838de10c53ef3e74",
+ "bookmarks": [],
"branch": "foo",
- "phase": "draft",
- "user": "person",
"date": [1400000, 0],
"desc": "new branch",
- "bookmarks": [],
+ "node": "bbe44766e73d5f11ed2177f1838de10c53ef3e74",
+ "parents": ["10e46f2dcbf4823578cf180f33ecf0b957964c47"],
+ "phase": "draft",
+ "rev": 4,
"tags": [],
- "parents": ["10e46f2dcbf4823578cf180f33ecf0b957964c47"]
+ "user": "person"
},
{
- "rev": 3,
- "node": "10e46f2dcbf4823578cf180f33ecf0b957964c47",
+ "bookmarks": [],
"branch": "default",
- "phase": "draft",
- "user": "person",
"date": [1300000, 0],
"desc": "no user, no domain",
- "bookmarks": [],
+ "node": "10e46f2dcbf4823578cf180f33ecf0b957964c47",
+ "parents": ["97054abb4ab824450e9164180baf491ae0078465"],
+ "phase": "draft",
+ "rev": 3,
"tags": [],
- "parents": ["97054abb4ab824450e9164180baf491ae0078465"]
+ "user": "person"
},
{
- "rev": 2,
- "node": "97054abb4ab824450e9164180baf491ae0078465",
+ "bookmarks": [],
"branch": "default",
- "phase": "draft",
- "user": "other at place",
"date": [1200000, 0],
"desc": "no person",
- "bookmarks": [],
+ "node": "97054abb4ab824450e9164180baf491ae0078465",
+ "parents": ["b608e9d1a3f0273ccf70fb85fd6866b3482bf965"],
+ "phase": "draft",
+ "rev": 2,
"tags": [],
- "parents": ["b608e9d1a3f0273ccf70fb85fd6866b3482bf965"]
+ "user": "other at place"
},
{
- "rev": 1,
- "node": "b608e9d1a3f0273ccf70fb85fd6866b3482bf965",
+ "bookmarks": [],
"branch": "default",
- "phase": "draft",
- "user": "A. N. Other <other at place>",
"date": [1100000, 0],
"desc": "other 1\nother 2\n\nother 3",
- "bookmarks": [],
+ "node": "b608e9d1a3f0273ccf70fb85fd6866b3482bf965",
+ "parents": ["1e4e1b8f71e05681d422154f5421e385fec3454f"],
+ "phase": "draft",
+ "rev": 1,
"tags": [],
- "parents": ["1e4e1b8f71e05681d422154f5421e385fec3454f"]
+ "user": "A. N. Other <other at place>"
},
{
- "rev": 0,
- "node": "1e4e1b8f71e05681d422154f5421e385fec3454f",
+ "bookmarks": [],
"branch": "default",
- "phase": "draft",
- "user": "User Name <user at hostname>",
"date": [1000000, 0],
"desc": "line 1\nline 2",
- "bookmarks": [],
+ "node": "1e4e1b8f71e05681d422154f5421e385fec3454f",
+ "parents": ["0000000000000000000000000000000000000000"],
+ "phase": "draft",
+ "rev": 0,
"tags": [],
- "parents": ["0000000000000000000000000000000000000000"]
+ "user": "User Name <user at hostname>"
}
]
$ hg heads -v -Tjson
[
{
- "rev": 8,
- "node": "95c24699272ef57d062b8bccc32c878bf841784a",
+ "bookmarks": [],
"branch": "default",
- "phase": "draft",
- "user": "test",
"date": [1577872860, 0],
"desc": "third",
- "bookmarks": [],
+ "files": ["fourth", "second", "third"],
+ "node": "95c24699272ef57d062b8bccc32c878bf841784a",
+ "parents": ["29114dbae42b9f078cf2714dbe3a86bba8ec7453"],
+ "phase": "draft",
+ "rev": 8,
"tags": ["tip"],
- "parents": ["29114dbae42b9f078cf2714dbe3a86bba8ec7453"],
- "files": ["fourth", "second", "third"]
+ "user": "test"
},
{
- "rev": 6,
- "node": "d41e714fe50d9e4a5f11b4d595d543481b5f980b",
+ "bookmarks": [],
"branch": "default",
- "phase": "draft",
- "user": "person",
"date": [1500001, 0],
"desc": "merge",
- "bookmarks": [],
+ "files": [],
+ "node": "d41e714fe50d9e4a5f11b4d595d543481b5f980b",
+ "parents": ["13207e5a10d9fd28ec424934298e176197f2c67f", "bbe44766e73d5f11ed2177f1838de10c53ef3e74"],
+ "phase": "draft",
+ "rev": 6,
"tags": [],
- "parents": ["13207e5a10d9fd28ec424934298e176197f2c67f", "bbe44766e73d5f11ed2177f1838de10c53ef3e74"],
- "files": []
+ "user": "person"
},
{
- "rev": 4,
- "node": "bbe44766e73d5f11ed2177f1838de10c53ef3e74",
+ "bookmarks": [],
"branch": "foo",
- "phase": "draft",
- "user": "person",
"date": [1400000, 0],
"desc": "new branch",
- "bookmarks": [],
+ "files": [],
+ "node": "bbe44766e73d5f11ed2177f1838de10c53ef3e74",
+ "parents": ["10e46f2dcbf4823578cf180f33ecf0b957964c47"],
+ "phase": "draft",
+ "rev": 4,
"tags": [],
- "parents": ["10e46f2dcbf4823578cf180f33ecf0b957964c47"],
- "files": []
+ "user": "person"
}
]
$ hg log --debug -Tjson
[
{
- "rev": 8,
- "node": "95c24699272ef57d062b8bccc32c878bf841784a",
+ "added": ["fourth", "third"],
+ "bookmarks": [],
"branch": "default",
- "phase": "draft",
- "user": "test",
"date": [1577872860, 0],
"desc": "third",
- "bookmarks": [],
- "tags": ["tip"],
- "parents": ["29114dbae42b9f078cf2714dbe3a86bba8ec7453"],
+ "extra": {"branch": "default"},
"manifest": "94961b75a2da554b4df6fb599e5bfc7d48de0c64",
- "extra": {"branch": "default"},
"modified": [],
- "added": ["fourth", "third"],
- "removed": ["second"]
+ "node": "95c24699272ef57d062b8bccc32c878bf841784a",
+ "parents": ["29114dbae42b9f078cf2714dbe3a86bba8ec7453"],
+ "phase": "draft",
+ "removed": ["second"],
+ "rev": 8,
+ "tags": ["tip"],
+ "user": "test"
},
{
- "rev": 7,
- "node": "29114dbae42b9f078cf2714dbe3a86bba8ec7453",
+ "added": ["second"],
+ "bookmarks": [],
"branch": "default",
- "phase": "draft",
- "user": "User Name <user at hostname>",
"date": [1000000, 0],
"desc": "second",
- "bookmarks": [],
- "tags": [],
- "parents": ["0000000000000000000000000000000000000000"],
+ "extra": {"branch": "default"},
"manifest": "f2dbc354b94e5ec0b4f10680ee0cee816101d0bf",
- "extra": {"branch": "default"},
"modified": [],
- "added": ["second"],
- "removed": []
+ "node": "29114dbae42b9f078cf2714dbe3a86bba8ec7453",
+ "parents": ["0000000000000000000000000000000000000000"],
+ "phase": "draft",
+ "removed": [],
+ "rev": 7,
+ "tags": [],
+ "user": "User Name <user at hostname>"
},
{
- "rev": 6,
- "node": "d41e714fe50d9e4a5f11b4d595d543481b5f980b",
+ "added": [],
+ "bookmarks": [],
"branch": "default",
- "phase": "draft",
- "user": "person",
"date": [1500001, 0],
"desc": "merge",
- "bookmarks": [],
- "tags": [],
- "parents": ["13207e5a10d9fd28ec424934298e176197f2c67f", "bbe44766e73d5f11ed2177f1838de10c53ef3e74"],
+ "extra": {"branch": "default"},
"manifest": "4dc3def4f9b4c6e8de820f6ee74737f91e96a216",
- "extra": {"branch": "default"},
"modified": [],
- "added": [],
- "removed": []
+ "node": "d41e714fe50d9e4a5f11b4d595d543481b5f980b",
+ "parents": ["13207e5a10d9fd28ec424934298e176197f2c67f", "bbe44766e73d5f11ed2177f1838de10c53ef3e74"],
+ "phase": "draft",
+ "removed": [],
+ "rev": 6,
+ "tags": [],
+ "user": "person"
},
{
- "rev": 5,
- "node": "13207e5a10d9fd28ec424934298e176197f2c67f",
+ "added": ["d"],
+ "bookmarks": [],
"branch": "default",
- "phase": "draft",
- "user": "person",
"date": [1500000, 0],
"desc": "new head",
- "bookmarks": [],
- "tags": [],
- "parents": ["10e46f2dcbf4823578cf180f33ecf0b957964c47"],
+ "extra": {"branch": "default"},
"manifest": "4dc3def4f9b4c6e8de820f6ee74737f91e96a216",
- "extra": {"branch": "default"},
"modified": [],
- "added": ["d"],
- "removed": []
+ "node": "13207e5a10d9fd28ec424934298e176197f2c67f",
+ "parents": ["10e46f2dcbf4823578cf180f33ecf0b957964c47"],
+ "phase": "draft",
+ "removed": [],
+ "rev": 5,
+ "tags": [],
+ "user": "person"
},
{
- "rev": 4,
- "node": "bbe44766e73d5f11ed2177f1838de10c53ef3e74",
+ "added": [],
+ "bookmarks": [],
"branch": "foo",
- "phase": "draft",
- "user": "person",
"date": [1400000, 0],
"desc": "new branch",
- "bookmarks": [],
- "tags": [],
- "parents": ["10e46f2dcbf4823578cf180f33ecf0b957964c47"],
+ "extra": {"branch": "foo"},
"manifest": "cb5a1327723bada42f117e4c55a303246eaf9ccc",
- "extra": {"branch": "foo"},
"modified": [],
- "added": [],
- "removed": []
+ "node": "bbe44766e73d5f11ed2177f1838de10c53ef3e74",
+ "parents": ["10e46f2dcbf4823578cf180f33ecf0b957964c47"],
+ "phase": "draft",
+ "removed": [],
+ "rev": 4,
+ "tags": [],
+ "user": "person"
},
{
- "rev": 3,
- "node": "10e46f2dcbf4823578cf180f33ecf0b957964c47",
+ "added": [],
+ "bookmarks": [],
"branch": "default",
- "phase": "draft",
- "user": "person",
"date": [1300000, 0],
"desc": "no user, no domain",
- "bookmarks": [],
- "tags": [],
- "parents": ["97054abb4ab824450e9164180baf491ae0078465"],
+ "extra": {"branch": "default"},
"manifest": "cb5a1327723bada42f117e4c55a303246eaf9ccc",
- "extra": {"branch": "default"},
"modified": ["c"],
- "added": [],
- "removed": []
+ "node": "10e46f2dcbf4823578cf180f33ecf0b957964c47",
+ "parents": ["97054abb4ab824450e9164180baf491ae0078465"],
+ "phase": "draft",
+ "removed": [],
+ "rev": 3,
+ "tags": [],
+ "user": "person"
},
{
- "rev": 2,
- "node": "97054abb4ab824450e9164180baf491ae0078465",
+ "added": ["c"],
+ "bookmarks": [],
"branch": "default",
- "phase": "draft",
- "user": "other at place",
"date": [1200000, 0],
"desc": "no person",
- "bookmarks": [],
- "tags": [],
- "parents": ["b608e9d1a3f0273ccf70fb85fd6866b3482bf965"],
+ "extra": {"branch": "default"},
"manifest": "6e0e82995c35d0d57a52aca8da4e56139e06b4b1",
- "extra": {"branch": "default"},
"modified": [],
- "added": ["c"],
- "removed": []
+ "node": "97054abb4ab824450e9164180baf491ae0078465",
+ "parents": ["b608e9d1a3f0273ccf70fb85fd6866b3482bf965"],
+ "phase": "draft",
+ "removed": [],
+ "rev": 2,
+ "tags": [],
+ "user": "other at place"
},
{
- "rev": 1,
- "node": "b608e9d1a3f0273ccf70fb85fd6866b3482bf965",
+ "added": ["b"],
+ "bookmarks": [],
"branch": "default",
- "phase": "draft",
- "user": "A. N. Other <other at place>",
"date": [1100000, 0],
"desc": "other 1\nother 2\n\nother 3",
- "bookmarks": [],
- "tags": [],
- "parents": ["1e4e1b8f71e05681d422154f5421e385fec3454f"],
+ "extra": {"branch": "default"},
"manifest": "4e8d705b1e53e3f9375e0e60dc7b525d8211fe55",
- "extra": {"branch": "default"},
"modified": [],
- "added": ["b"],
- "removed": []
+ "node": "b608e9d1a3f0273ccf70fb85fd6866b3482bf965",
+ "parents": ["1e4e1b8f71e05681d422154f5421e385fec3454f"],
+ "phase": "draft",
+ "removed": [],
+ "rev": 1,
+ "tags": [],
+ "user": "A. N. Other <other at place>"
},
{
- "rev": 0,
- "node": "1e4e1b8f71e05681d422154f5421e385fec3454f",
+ "added": ["a"],
+ "bookmarks": [],
"branch": "default",
- "phase": "draft",
- "user": "User Name <user at hostname>",
"date": [1000000, 0],
"desc": "line 1\nline 2",
- "bookmarks": [],
- "tags": [],
- "parents": ["0000000000000000000000000000000000000000"],
+ "extra": {"branch": "default"},
"manifest": "a0c8bcbbb45c63b90b70ad007bf38961f64f2af0",
- "extra": {"branch": "default"},
"modified": [],
- "added": ["a"],
- "removed": []
+ "node": "1e4e1b8f71e05681d422154f5421e385fec3454f",
+ "parents": ["0000000000000000000000000000000000000000"],
+ "phase": "draft",
+ "removed": [],
+ "rev": 0,
+ "tags": [],
+ "user": "User Name <user at hostname>"
}
]
diff --git a/tests/test-log-linerange.t b/tests/test-log-linerange.t
--- a/tests/test-log-linerange.t
+++ b/tests/test-log-linerange.t
@@ -254,52 +254,52 @@ With --template.
$ hg log -f -L foo,5:7 -T json
[
{
- "rev": 5,
- "node": "cfdf972b3971a2a59638bf9583c0debbffee5404",
+ "bookmarks": [],
"branch": "default",
- "phase": "draft",
- "user": "test",
"date": [0, 0],
"desc": "foo: 3 -> 3+ and 11+ -> 11-; bar: a -> a+",
- "bookmarks": [],
+ "node": "cfdf972b3971a2a59638bf9583c0debbffee5404",
+ "parents": ["eaec41c1a0c9ad0a5e999611d0149d171beffb8c"],
+ "phase": "draft",
+ "rev": 5,
"tags": ["tip"],
- "parents": ["eaec41c1a0c9ad0a5e999611d0149d171beffb8c"]
+ "user": "test"
},
{
- "rev": 4,
- "node": "eaec41c1a0c9ad0a5e999611d0149d171beffb8c",
+ "bookmarks": [],
"branch": "default",
- "phase": "draft",
- "user": "test",
"date": [0, 0],
"desc": "11 -> 11+; leading space before \"1\"",
- "bookmarks": [],
+ "node": "eaec41c1a0c9ad0a5e999611d0149d171beffb8c",
+ "parents": ["730a61fbaecf426c17c2c66bc42d195b5d5b0ba8"],
+ "phase": "draft",
+ "rev": 4,
"tags": [],
- "parents": ["730a61fbaecf426c17c2c66bc42d195b5d5b0ba8"]
+ "user": "test"
},
{
- "rev": 2,
- "node": "63a884426fd0b277fcd55895bbb2f230434576eb",
+ "bookmarks": [],
"branch": "default",
- "phase": "draft",
- "user": "test",
"date": [0, 0],
"desc": "2 -> 2+; added bar",
- "bookmarks": [],
+ "node": "63a884426fd0b277fcd55895bbb2f230434576eb",
+ "parents": ["29a1e7c6b80024f63f310a2d71de979e9d2996d7"],
+ "phase": "draft",
+ "rev": 2,
"tags": [],
- "parents": ["29a1e7c6b80024f63f310a2d71de979e9d2996d7"]
+ "user": "test"
},
{
- "rev": 0,
- "node": "5ae1f82b9a000ff1e0967d0dac1c58b9d796e1b4",
+ "bookmarks": [],
"branch": "default",
- "phase": "draft",
- "user": "test",
"date": [0, 0],
"desc": "init",
- "bookmarks": [],
+ "node": "5ae1f82b9a000ff1e0967d0dac1c58b9d796e1b4",
+ "parents": ["0000000000000000000000000000000000000000"],
+ "phase": "draft",
+ "rev": 0,
"tags": [],
- "parents": ["0000000000000000000000000000000000000000"]
+ "user": "test"
}
]
diff --git a/tests/test-log.t b/tests/test-log.t
--- a/tests/test-log.t
+++ b/tests/test-log.t
@@ -619,18 +619,18 @@ log copies with hardcoded style and with
$ hg log -vC -r4 -Tjson
[
{
- "rev": 4,
- "node": "7e4639b4691b9f84b81036a8d4fb218ce3c5e3a3",
+ "bookmarks": [],
"branch": "default",
- "phase": "draft",
- "user": "test",
+ "copies": {"e": "dir/b"},
"date": [5, 0],
"desc": "e",
- "bookmarks": [],
- "tags": ["tip"],
+ "files": ["dir/b", "e"],
+ "node": "7e4639b4691b9f84b81036a8d4fb218ce3c5e3a3",
"parents": ["2ca5ba7019804f1f597249caddf22a64d34df0ba"],
- "files": ["dir/b", "e"],
- "copies": {"e": "dir/b"}
+ "phase": "draft",
+ "rev": 4,
+ "tags": ["tip"],
+ "user": "test"
}
]
@@ -2204,45 +2204,45 @@ dirty:
$ hg log -r 'wdir()' -Tjson
[
{
- "rev": null,
- "node": null,
+ "bookmarks": [],
"branch": "default",
- "phase": "draft",
- "user": "test",
"date": [*, 0], (glob)
"desc": "",
- "bookmarks": [],
+ "node": null,
+ "parents": ["65624cd9070a035fa7191a54f2b8af39f16b0c08"],
+ "phase": "draft",
+ "rev": null,
"tags": [],
- "parents": ["65624cd9070a035fa7191a54f2b8af39f16b0c08"]
+ "user": "test"
}
]
$ hg log -r 'wdir()' -Tjson -q
[
{
- "rev": null,
- "node": null
+ "node": null,
+ "rev": null
}
]
$ hg log -r 'wdir()' -Tjson --debug
[
{
- "rev": null,
- "node": null,
+ "added": ["d1/f2"],
+ "bookmarks": [],
"branch": "default",
- "phase": "draft",
- "user": "test",
"date": [*, 0], (glob)
"desc": "",
- "bookmarks": [],
- "tags": [],
- "parents": ["65624cd9070a035fa7191a54f2b8af39f16b0c08"],
+ "extra": {"branch": "default"},
"manifest": null,
- "extra": {"branch": "default"},
"modified": ["d1/f1"],
- "added": ["d1/f2"],
- "removed": [".d6/f1"]
+ "node": null,
+ "parents": ["65624cd9070a035fa7191a54f2b8af39f16b0c08"],
+ "phase": "draft",
+ "removed": [".d6/f1"],
+ "rev": null,
+ "tags": [],
+ "user": "test"
}
]
More information about the Mercurial-devel
mailing list