# HG changeset patch # User Matt Harbison # Date 2019-01-06 00:50:30 # Node ID 43fd1947301dfa1d87098d3b4871a83f3ff44f5e # Parent 0101a35deae27592f9219630e7b8f4cc0e345458 phabricator: teach {phabreview} to work without --amend There's some possibility of this being wrong (e.g. if the url config was changed). But commit messages can be amended too, so that isn't bulletproof either. Having something seems better than just returning None. diff --git a/hgext/phabricator.py b/hgext/phabricator.py --- a/hgext/phabricator.py +++ b/hgext/phabricator.py @@ -997,3 +997,17 @@ def template_review(context, mapping): b'url': m.group(b'url'), b'id': b"D{}".format(m.group(b'id')), }) + else: + tags = ctx.repo().nodetags(ctx.node()) + for t in tags: + if _differentialrevisiontagre.match(t): + url = ctx.repo().ui.config(b'phabricator', b'url') + if not url.endswith(b'/'): + url += b'/' + url += t + + return templateutil.hybriddict({ + b'url': url, + b'id': t, + }) + return None diff --git a/tests/test-phabricator.t b/tests/test-phabricator.t --- a/tests/test-phabricator.t +++ b/tests/test-phabricator.t @@ -106,13 +106,13 @@ behind to identify it. Template keywords $ hg log -T'{rev} {phabreview|json}\n' 3 {"id": "D5545", "url": "https://phab.mercurial-scm.org/D5545"} - 2 null + 2 {"id": "D5544", "url": "https://phab.mercurial-scm.org/D5544"} 1 {"id": "D4597", "url": "https://phab.mercurial-scm.org/D4597"} 0 {"id": "D4596", "url": "https://phab.mercurial-scm.org/D4596"} $ hg log -T'{rev} {if(phabreview, "{phabreview.url} {phabreview.id}")}\n' 3 https://phab.mercurial-scm.org/D5545 D5545 - 2 + 2 https://phab.mercurial-scm.org/D5544 D5544 1 https://phab.mercurial-scm.org/D4597 D4597 0 https://phab.mercurial-scm.org/D4596 D4596