Gregory Szorc <gregory.szorc@gmail.com> [Tue, 13 Mar 2018 08:58:52 -0700] rev 37008
tests: use $HTTP_DATE$ for Date header
Support for the $HTTP_DATE$ substitution was recently added. Let's
adopt it more widely.
We had to tweak the substitution to be case insensitive, since
HTTP headers are case insensitive. I also found a minor test
issue not globbing over the length of the Server response header.
Differential Revision: https://phab.mercurial-scm.org/D2839
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 12 Mar 2018 15:49:02 -0700] rev 37007
debugcommands: introduce actions to perform deterministic reads
"readavailable" is useful as a debugging device to see what data is
available on a pipe. But the mechanism isn't deterministic because
what's available on a pipe is highly conditional on timing, system
load, OS behavior, etc. This makes it not suitable for tests.
We introduce "ereadline," "read," and "eread" for performing
deterministic I/O operations (at least on blocking file descriptors).
We stop short of converting existing consumers of "readavailable"
in tests because we're working out race conditions and deadlocks
on Windows. But the goal is to eventually move tests away from
"readavailable" to these new APIs.
Differential Revision: https://phab.mercurial-scm.org/D2720
Gregory Szorc <gregory.szorc@gmail.com> [Wed, 07 Mar 2018 20:41:59 -0800] rev 37006
httppeer: refactor how httppeer is created (API)
Previously, we passed a bunch of arguments to httppeer.__init__,
validated them, then possibly constructed a valid instance.
A short while ago, we refactored sshpeer so all the validation and
setup work occurs before the constructor. We introduced a makepeer()
to hold most of this logic.
This commit gives httppeer the same treatment.
As a sign that the previous design was poor, __del__ no longer
conditionally checks for the presence of an attribute that may
not be defined (it is always defined in the new code).
.. api::
httppeer.httppeer.__init__ now takes additional arguments.
Instances should be obtained by calling httppeer.instance()
or httppeer.makepeer() instead.
Differential Revision: https://phab.mercurial-scm.org/D2725
Boris Feld <boris.feld@octobus.net> [Wed, 31 Jan 2018 09:41:47 +0100] rev 37005
bundle: condition the changegroup part when creating a new bundle
We will generate stream bundle in the next changesets which doesn't need the
changegroup part.
Differential Revision: https://phab.mercurial-scm.org/D1951
Boris Feld <boris.feld@octobus.net> [Fri, 19 Jan 2018 17:29:50 +0100] rev 37004
stack: return a sorted smartrev by default
Most stack customers will display a list of revisions, sort it by default.
Differential Revision: https://phab.mercurial-scm.org/D2399
Boris Feld <boris.feld@octobus.net> [Fri, 19 Jan 2018 17:09:24 +0100] rev 37003
histedit: use the new stack definition for histedit
Now that we have a common stack definition, use it in the hg histedit command.
Differential Revision: https://phab.mercurial-scm.org/D2398
Boris Feld <boris.feld@octobus.net> [Fri, 19 Jan 2018 16:52:56 +0100] rev 37002
show: use the new stack definition for show stack
Now that we have a common stack definition, use it in the hg show stack
command.
Differential Revision: https://phab.mercurial-scm.org/D2397
Boris Feld <boris.feld@octobus.net> [Fri, 19 Jan 2018 16:52:02 +0100] rev 37001
stack: import Evolve stack test file
Import Evolve stack test file for starting to have good coverage on stack
definition.
Differential Revision: https://phab.mercurial-scm.org/D2396
Boris Feld <boris.feld@octobus.net> [Fri, 19 Jan 2018 15:25:06 +0100] rev 37000
stack: add a new module for stack-related commands
Bootstrap the module with a function that returns the stack for the current
revision. The definition of the stack is ihnerited from histedit default
revset and used by hg show stack.
Differential Revision: https://phab.mercurial-scm.org/D2395
Kyle Lippincott <spectral@google.com> [Fri, 19 Jan 2018 19:07:58 -0800] rev 36999
filemerge: use a single temp dir instead of temp files
This can help to remove the clutter from UIs that display just the filenames;
instead of seeing foo~local.C9ru9r.txt and foo~base.2DMV22.txt (in the /tmp
directory on most platforms), we create a single new directory and use that,
producing filenames like /tmp/hgmerge.C9ru9r/foo~local.txt.
Differential Revision: https://phab.mercurial-scm.org/D2888