hgext/phabricator.py
changeset 41902 59bae59b7498
parent 41901 a98dabdb5a7b
child 41903 8fd19a7b4ed6
equal deleted inserted replaced
41901:a98dabdb5a7b 41902:59bae59b7498
   760             "sourcePath": null
   760             "sourcePath": null
   761         }
   761         }
   762     """
   762     """
   763     def fetch(params):
   763     def fetch(params):
   764         """params -> single drev or None"""
   764         """params -> single drev or None"""
   765         key = (params.get(r'ids') or params.get(r'phids') or [None])[0]
   765         key = (params.get(b'ids') or params.get(b'phids') or [None])[0]
   766         if key in prefetched:
   766         if key in prefetched:
   767             return prefetched[key]
   767             return prefetched[key]
   768         drevs = callconduit(repo, b'differential.query', params)
   768         drevs = callconduit(repo, b'differential.query', params)
   769         # Fill prefetched with the result
   769         # Fill prefetched with the result
   770         for drev in drevs:
   770         for drev in drevs:
   777 
   777 
   778     def getstack(topdrevids):
   778     def getstack(topdrevids):
   779         """given a top, get a stack from the bottom, [id] -> [id]"""
   779         """given a top, get a stack from the bottom, [id] -> [id]"""
   780         visited = set()
   780         visited = set()
   781         result = []
   781         result = []
   782         queue = [{r'ids': [i]} for i in topdrevids]
   782         queue = [{b'ids': [i]} for i in topdrevids]
   783         while queue:
   783         while queue:
   784             params = queue.pop()
   784             params = queue.pop()
   785             drev = fetch(params)
   785             drev = fetch(params)
   786             if drev[b'id'] in visited:
   786             if drev[b'id'] in visited:
   787                 continue
   787                 continue
   921         header = b'# HG changeset patch\n'
   921         header = b'# HG changeset patch\n'
   922 
   922 
   923         # Try to preserve metadata from hg:meta property. Write hg patch
   923         # Try to preserve metadata from hg:meta property. Write hg patch
   924         # headers that can be read by the "import" command. See patchheadermap
   924         # headers that can be read by the "import" command. See patchheadermap
   925         # and extract in mercurial/patch.py for supported headers.
   925         # and extract in mercurial/patch.py for supported headers.
   926         meta = getdiffmeta(diffs[str(diffid)])
   926         meta = getdiffmeta(diffs[b'%d' % diffid])
   927         for k in _metanamemap.keys():
   927         for k in _metanamemap.keys():
   928             if k in meta:
   928             if k in meta:
   929                 header += b'# %s %s\n' % (_metanamemap[k], meta[k])
   929                 header += b'# %s %s\n' % (_metanamemap[k], meta[k])
   930 
   930 
   931         content = b'%s%s\n%s' % (header, desc, body)
   931         content = b'%s%s\n%s' % (header, desc, body)