# HG changeset patch # User Yuya Nishihara # Date 1426331740 -32400 # Node ID 201caa10536b533759b21eddbf540c638227e68d # Parent d80819f67d5961a91da723e29677c78f8992b789 jsonchangeset: set rev and node to "null" for workingctx diff -r d80819f67d59 -r 201caa10536b mercurial/cmdutil.py --- a/mercurial/cmdutil.py Fri Apr 03 21:36:39 2015 +0900 +++ b/mercurial/cmdutil.py Sat Mar 14 20:15:40 2015 +0900 @@ -1260,8 +1260,12 @@ def _show(self, ctx, copies, matchfn, props): '''show a single changeset or file revision''' - hexnode = hex(ctx.node()) rev = ctx.rev() + if rev is None: + jrev = jnode = 'null' + else: + jrev = str(rev) + jnode = '"%s"' % hex(ctx.node()) j = encoding.jsonescape if self._first: @@ -1271,13 +1275,13 @@ self.ui.write(",\n {") if self.ui.quiet: - self.ui.write('\n "rev": %d' % rev) - self.ui.write(',\n "node": "%s"' % hexnode) + self.ui.write('\n "rev": %s' % jrev) + self.ui.write(',\n "node": %s' % jnode) self.ui.write('\n }') return - self.ui.write('\n "rev": %d' % rev) - self.ui.write(',\n "node": "%s"' % hexnode) + 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())) diff -r d80819f67d59 -r 201caa10536b tests/test-log.t --- a/tests/test-log.t Fri Apr 03 21:36:39 2015 +0900 +++ b/tests/test-log.t Sat Mar 14 20:15:40 2015 +0900 @@ -1642,6 +1642,30 @@ date: [A-Za-z0-9:+ ]+ (re) extra: branch=default + $ hg log -r 'wdir()' -Tjson + [ + { + "rev": null, + "node": null, + "branch": "default", + "phase": "draft", + "user": "test", + "date": [*, 0], (glob) + "desc": "", + "bookmarks": [], + "tags": ["tip"], + "parents": ["65624cd9070a035fa7191a54f2b8af39f16b0c08"] + } + ] + + $ hg log -r 'wdir()' -Tjson -q + [ + { + "rev": null, + "node": null + } + ] + Check that adding an arbitrary name shows up in log automatically $ cat > ../names.py <