comparison hgext/phabricator.py @ 44418:41217dfa7a6d

phabricator: pass ui instead of repo to `readpatch()` This makes it a little clearer that it isn't a repository operation. Differential Revision: https://phab.mercurial-scm.org/D8205
author Matt Harbison <matt_harbison@yahoo.com>
date Mon, 17 Feb 2020 13:01:16 -0500
parents adb93aa98c78
children df8053082364
comparison
equal deleted inserted replaced
44417:7c0b8652fd8c 44418:41217dfa7a6d
1607 if b'parent' not in meta and diff.get(b'sourceControlBaseRevision'): 1607 if b'parent' not in meta and diff.get(b'sourceControlBaseRevision'):
1608 meta[b'parent'] = diff[b'sourceControlBaseRevision'] 1608 meta[b'parent'] = diff[b'sourceControlBaseRevision']
1609 return meta 1609 return meta
1610 1610
1611 1611
1612 def readpatch(repo, drevs, write): 1612 def readpatch(ui, drevs, write):
1613 """generate plain-text patch readable by 'hg import' 1613 """generate plain-text patch readable by 'hg import'
1614 1614
1615 write is usually ui.write. drevs is what "querydrev" returns, results of 1615 write is usually ui.write. drevs is what "querydrev" returns, results of
1616 "differential.query". 1616 "differential.query".
1617 """ 1617 """
1618 # Prefetch hg:meta property for all diffs 1618 # Prefetch hg:meta property for all diffs
1619 diffids = sorted(set(max(int(v) for v in drev[b'diffs']) for drev in drevs)) 1619 diffids = sorted(set(max(int(v) for v in drev[b'diffs']) for drev in drevs))
1620 diffs = callconduit(repo.ui, b'differential.querydiffs', {b'ids': diffids}) 1620 diffs = callconduit(ui, b'differential.querydiffs', {b'ids': diffids})
1621 1621
1622 # Generate patch for each drev 1622 # Generate patch for each drev
1623 for drev in drevs: 1623 for drev in drevs:
1624 repo.ui.note(_(b'reading D%s\n') % drev[b'id']) 1624 ui.note(_(b'reading D%s\n') % drev[b'id'])
1625 1625
1626 diffid = max(int(v) for v in drev[b'diffs']) 1626 diffid = max(int(v) for v in drev[b'diffs'])
1627 body = callconduit( 1627 body = callconduit(ui, b'differential.getrawdiff', {b'diffID': diffid})
1628 repo.ui, b'differential.getrawdiff', {b'diffID': diffid}
1629 )
1630 desc = getdescfromdrev(drev) 1628 desc = getdescfromdrev(drev)
1631 header = b'# HG changeset patch\n' 1629 header = b'# HG changeset patch\n'
1632 1630
1633 # Try to preserve metadata from hg:meta property. Write hg patch 1631 # Try to preserve metadata from hg:meta property. Write hg patch
1634 # headers that can be read by the "import" command. See patchheadermap 1632 # headers that can be read by the "import" command. See patchheadermap
1669 """ 1667 """
1670 opts = pycompat.byteskwargs(opts) 1668 opts = pycompat.byteskwargs(opts)
1671 if opts.get(b'stack'): 1669 if opts.get(b'stack'):
1672 spec = b':(%s)' % spec 1670 spec = b':(%s)' % spec
1673 drevs = querydrev(repo, spec) 1671 drevs = querydrev(repo, spec)
1674 readpatch(repo, drevs, ui.write) 1672 readpatch(repo.ui, drevs, ui.write)
1675 1673
1676 1674
1677 @vcrcommand( 1675 @vcrcommand(
1678 b'phabupdate', 1676 b'phabupdate',
1679 [ 1677 [