phabricator: teach {phabreview} to work without --amend
authorMatt Harbison <matt_harbison@yahoo.com>
Sat, 05 Jan 2019 19:50:30 -0500
changeset 41164 43fd1947301d
parent 41163 0101a35deae2
child 41165 a3a24ad10efb
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.
hgext/phabricator.py
tests/test-phabricator.t
--- a/hgext/phabricator.py	Sat Jan 05 15:20:33 2019 -0500
+++ b/hgext/phabricator.py	Sat Jan 05 19:50:30 2019 -0500
@@ -997,3 +997,17 @@
             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
--- a/tests/test-phabricator.t	Sat Jan 05 15:20:33 2019 -0500
+++ b/tests/test-phabricator.t	Sat Jan 05 19:50:30 2019 -0500
@@ -106,13 +106,13 @@
 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