Mercurial > hg
view tests/test-demandimport.py.out @ 33269:ead6749354e1
phabricator: try to fetch differential revisions in batch
Previously, we read Differential Revisions one by one by calling
`differential.query`.
Fetching them one by one is suboptimal. Unfortunately, there is no Conduit
API that allows us to get a stack of diffids using a single API call.
This patch tries to be smarter using a simple heuristic: when fetching D59
as a stack, previous IDs like D51, D52, D53, ..., D58 are likely belonging
to a same stack so just fetch them as well. Since `differential.query` only
returns cheap metadata without expensive diff content, it shouldn't be a big
problem for the server.
Using a test Phabricator instance, this patch reduces `phabread` reading a
10 patch stack from about 13 to 30 seconds to 8 seconds.
author | Jun Wu <quark@fb.com> |
---|---|
date | Tue, 04 Jul 2017 16:36:48 -0700 |
parents | 91a2ec8e7fa0 |
children | b39f0fdb0338 |
line wrap: on
line source
os = <unloaded module 'os'> os.system = <built-in function system> os = <module 'os' from '?'> util = <unloaded module 'util'> util.system = <function system at 0x?> util = <module 'mercurial.util' from '?'> util.system = <function system at 0x?> hgweb = <unloaded module 'hgweb'> hgweb_mod = <unloaded module 'hgweb_mod'> hgweb = <module 'mercurial.hgweb' from '?'> fred = <unloaded module 're'> remod = <unloaded module 're'> re = <unloaded module 'sys'> fred = <unloaded module 're'> fred.sub = <function sub at 0x?> fred = <proxied module 're'> remod = <module 're' from '?'> re = <unloaded module 'sys'> re.stderr = <open file '<whatever>', mode 'w' at 0x?> re = <proxied module 'sys'> pvecproxy = <unloaded module 'pvec'> pvecproxy.__doc__ = 'A "pvec" is ...' pvecproxy.__name__ = 'mercurial.pvec' pvecproxy.__dict__['__name__'] = 'mercurial.pvec' pvecproxy = <proxied module 'pvec'> contextlib = <unloaded module 'contextlib'> contextlib.unknownattr = ImportError: cannot import name unknownattr __import__('contextlib', ..., ['unknownattr']) = <module 'contextlib' from '?'> hasattr(contextlibimp, 'unknownattr') = False node = <module 'mercurial.node' from '?'>