Manuel Jacob <me@manueljacob.de> [Fri, 10 Jul 2020 09:55:38 +0200] rev 45080
procutil: explain better why line buffering is not possible
The sentence “On Python 3, buffered binary streams can't be set line-buffered.”
was imprecise, as all streams are just Python classes and we can implement our
own (which we did).
Manuel Jacob <me@manueljacob.de> [Tue, 07 Jul 2020 12:13:40 +0200] rev 45079
tests: make subprocess handling reusable for different tests in test-stdio.py
Manuel Jacob <me@manueljacob.de> [Sat, 11 Jul 2020 06:03:22 +0200] rev 45078
procutil: back out 8403cc54bc83 (make ....procutil.stderr unbuffered)
Changeset 8403cc54bc83 introduced code that opens a second file object
referring to the stderr file descriptor. This broke tests on Windows. The
reason is that on Windows, sys.stderr is buffered and procutil.stderr closed
the file descriptor when it got garbage collected before sys.stderr had the
chance to flush buffered data.
`procutil.stdout` had the same problem for a long time, but we didn’t realize,
as in CI test runs, stdout is not a TTY and in this case no second file object
is opened.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 09 Jul 2020 02:16:26 +0200] rev 45077
test-clone-uncompressed: use config to silence the lock warning
The ui.timeout.warn option can solve the issue6237 in a cleaner way than what
was done in 752da6863e39. That way, possible other unexpected error output will
not be silenced.
Differential Revision: https://phab.mercurial-scm.org/D8726
Joerg Sonnenberger <joerg@bec.de> [Thu, 21 May 2020 18:18:50 +0200] rev 45076
hooklib: fix detection of successors for changeset_obsoleted
Provide a hook for obsutil.getobsolete to be used with either a
transaction or the changes item of the transaction, since hooks only
have access to the latter. Use that to find the correct list of
revisions with obsmarkers, even new ones, and then filter out revisions
with known successors.
Move the processing from pretxnclose to txnclose as the transaction
access itself is no longer necessary. This is more in line with notify
and ensures that sanity checks can abort the transaction first.
Differential Revision: https://phab.mercurial-scm.org/D8575
Rodrigo Damazio Bovendorp <rdamazio@google.com> [Thu, 09 Jul 2020 20:46:52 -0700] rev 45075
fix: prefetch file contents
This prevents the worker subprocesses from contacting the server individually,
which is either inefficient, or leads to problems if the connection is shared
among them.
Differential Revision: https://phab.mercurial-scm.org/D8723
Rodrigo Damazio Bovendorp <rdamazio@google.com> [Thu, 09 Jul 2020 20:45:35 -0700] rev 45074
fix: obtain base paths before starting workers
This moves calculation of base paths to before work is dispatched.
While this does mean that copy tracing will be serialized instead of
parallel, it is necessary to be able to prefetch the base contents
in a batch, which will likely be more efficient.
Differential Revision: https://phab.mercurial-scm.org/D8722
Rodrigo Damazio Bovendorp <rdamazio@google.com> [Thu, 09 Jul 2020 18:48:55 -0700] rev 45073
scmutil: allowing different files to be prefetched per revision
The old API takes a list of revision separate from the file matcher, and thus
provides no way to fetch different sets of files from each revision. In
preparation for adding one such usage, I'm changing the API to take a list of
(revision, file matcher) tuples instead.
Differential Revision: https://phab.mercurial-scm.org/D8721
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 11 Jul 2020 00:31:21 +0530] rev 45072
tests: update test-devel-warnings.t output with chg
Manuel Jacob <me@manueljacob.de> [Tue, 07 Jul 2020 11:10:07 +0200] rev 45071
tests: make names in test-stdio.py more distinctive
This way, more tests can be added without name clashes.