Gregory Szorc <gregory.szorc@gmail.com> [Mon, 19 Feb 2018 15:57:28 -0800] rev 36363
sshpeer: rename _recv and _send to _readframed and _writeframed
Because it is reading and writing a chunk of data with a well-defined
size. "recv" and "send" make it sound like things are a direct proxy to
the underlying pipe, which they aren't.
Differential Revision: https://phab.mercurial-scm.org/D2378
Gregory Szorc <gregory.szorc@gmail.com> [Wed, 21 Feb 2018 13:41:20 -0800] rev 36362
util: add a file object proxy that can read at most N bytes
Sometimes we have data of a known size within a stream. For
performance reasons, we don't want to pre-read this data (we want
to allow consumers to read on demand). For simplicitly reasons,
we don't want callers to necessarily know their data is coming
from within an outer stream and there is a limit to how much
they should read.
The class introduced by this commit provides a very simple proxy
around an underlying file object that allows the consumer to
.read() up to N bytes from the file object. Attempts to read
past this many bytes results in a simulated EOF.
Differential Revision: https://phab.mercurial-scm.org/D2377
Boris Feld <boris.feld@octobus.net> [Mon, 05 Feb 2018 15:03:51 +0100] rev 36361
patches: release the GIL while applying the patch
This will allow multiple threads to apply patches at the same time.
Boris Feld <boris.feld@octobus.net> [Wed, 21 Feb 2018 11:43:12 +0100] rev 36360
perfbranchmap: allow to select the filter to benchmark
Running the branchmap computation on all filter levels can be expensive.
Narrowing the run to some specific filters can speed up benchmarking time when
working only on a subset of filter levels.
Boris Feld <boris.feld@octobus.net> [Wed, 21 Feb 2018 12:13:16 +0100] rev 36359
perfbranchmap: display 'unfiltered' for unfiltered performance
This is slightly clearer than "None" and will help with coming changes to select
the filter level we want timing for.
Augie Fackler <augie@google.com> [Thu, 22 Feb 2018 01:00:57 -0500] rev 36358
py3: two more narrow tests passing
Differential Revision: https://phab.mercurial-scm.org/D2390
Augie Fackler <augie@google.com> [Thu, 22 Feb 2018 00:51:32 -0500] rev 36357
narrowbundle2: more kwargs native string fixes
This gets test-narrow.t to *almost* pass. Something appears to be
borked in producing bundles, but only some of the time? I'm lost, but
this change is at least a clear improvement.
# skip-blame just more r prefixes on strings
Differential Revision: https://phab.mercurial-scm.org/D2389
Augie Fackler <augie@google.com> [Wed, 21 Feb 2018 23:24:51 -0500] rev 36356
py3: whitelist another 11 passing tests
This is most of narrow. There's still some buglets at the margins, but
it's pretty good progress for not a lot of work.
Differential Revision: https://phab.mercurial-scm.org/D2388
Augie Fackler <augie@google.com> [Wed, 21 Feb 2018 22:49:40 -0500] rev 36355
narrowbundle2: use native string to get kwargs from dict
# skip-blame just some r prefixes on strings
Differential Revision: https://phab.mercurial-scm.org/D2387
Augie Fackler <augie@google.com> [Wed, 21 Feb 2018 22:49:15 -0500] rev 36354
narrowbundle2: drop legacy getcgkwargs variable
I think this was around as part of support for some older hg
internals. It's not needed any more.
Differential Revision: https://phab.mercurial-scm.org/D2386
Daniel Ploch <dploch@google.com> [Wed, 21 Feb 2018 20:05:29 -0800] rev 36353
fancyopts: add support for custom multi-arg opts in fancyopts.py
This allows for more complex multi-arg opt logic, such as "--sum 1 --sum 2"
-> 3, "--csv alice,bob --csv charlie" -> ["alice","bob","charlie"]. The
current support for callables is insufficient for this.
This is done by introducing a 'customopt' class which can be extended for
more powerful opts logic. All existing opt-types are converted to use this
class, simplifying the fancyopts() logic.
Differential Revision: https://phab.mercurial-scm.org/D2090
Augie Fackler <augie@google.com> [Wed, 21 Feb 2018 11:57:11 -0500] rev 36352
narrowcommands: add some missing strkwargs calls for py3
# skip-blame because it's just r prefixes
Differential Revision: https://phab.mercurial-scm.org/D2367