D6301: phabricator: fallback to reading metadata from diff for phabread
Kwan (Ian Moody)
phabricator at mercurial-scm.org
Mon Apr 22 13:57:47 EDT 2019
Kwan updated this revision to Diff 14894.
Kwan edited the summary of this revision.
Kwan edited the summary of this revision.
REPOSITORY
rHG Mercurial
CHANGES SINCE LAST UPDATE
https://phab.mercurial-scm.org/D6301?vs=14890&id=14894
BRANCH
default
REVISION DETAIL
https://phab.mercurial-scm.org/D6301
AFFECTED FILES
hgext/phabricator.py
tests/test-phabricator.t
CHANGE DETAILS
diff --git a/tests/test-phabricator.t b/tests/test-phabricator.t
--- a/tests/test-phabricator.t
+++ b/tests/test-phabricator.t
@@ -32,15 +32,15 @@
Basic phabread:
$ hg phabread --test-vcr "$VCR/phabread-4480.json" D4480 | head
# HG changeset patch
+ # Date 1536771503 0
+ # Parent a5de21c9e3703f8e8eb064bd7d893ff2f703c66a
exchangev2: start to implement pull with wire protocol v2
Wire protocol version 2 will take a substantially different
approach to exchange than version 1 (at least as far as pulling
is concerned).
This commit establishes a new exchangev2 module for holding
- code related to exchange using wire protocol v2. I could have
- added things to the existing exchange module. But it is already
phabupdate with an accept:
$ hg phabupdate --accept D4564 \
diff --git a/hgext/phabricator.py b/hgext/phabricator.py
--- a/hgext/phabricator.py
+++ b/hgext/phabricator.py
@@ -905,22 +905,31 @@
"""
props = diff.get(b'properties') or {}
meta = props.get(b'hg:meta')
- if not meta and props.get(b'local:commits'):
- commit = sorted(props[b'local:commits'].values())[0]
- meta = {}
- if b'author' in commit and b'authorEmail' in commit:
- meta[b'user'] = b'%s <%s>' % (commit[b'author'],
- commit[b'authorEmail'])
- if b'time' in commit:
- meta[b'date'] = b'%d 0' % commit[b'time']
- if b'branch' in commit:
- meta[b'branch'] = commit[b'branch']
- node = commit.get(b'commit', commit.get(b'rev'))
- if node:
- meta[b'node'] = node
- if len(commit.get(b'parents', ())) >= 1:
- meta[b'parent'] = commit[b'parents'][0]
- return meta or {}
+ if not meta:
+ if props.get(b'local:commits'):
+ commit = sorted(props[b'local:commits'].values())[0]
+ meta = {}
+ if b'author' in commit and b'authorEmail' in commit:
+ meta[b'user'] = b'%s <%s>' % (commit[b'author'],
+ commit[b'authorEmail'])
+ if b'time' in commit:
+ meta[b'date'] = b'%d 0' % commit[b'time']
+ if b'branch' in commit:
+ meta[b'branch'] = commit[b'branch']
+ node = commit.get(b'commit', commit.get(b'rev'))
+ if node:
+ meta[b'node'] = node
+ if len(commit.get(b'parents', ())) >= 1:
+ meta[b'parent'] = commit[b'parents'][0]
+ else:
+ meta = {}
+ if b'date' not in meta and b'dateCreated' in diff:
+ meta[b'date'] = b'%s 0' % diff[b'dateCreated']
+ if b'branch' not in meta and diff.get(b'branch'):
+ meta[b'branch'] = diff[b'branch']
+ if b'parent' not in meta and diff.get(b'sourceControlBaseRevision'):
+ meta[b'parent'] = diff[b'sourceControlBaseRevision']
+ return meta
def readpatch(repo, drevs, write):
"""generate plain-text patch readable by 'hg import'
To: Kwan, #hg-reviewers
Cc: mercurial-devel
More information about the Mercurial-devel
mailing list