Mon, 30 May 2022 16:18:12 +0200 node: stop converting binascii.Error to TypeError in bin()
Manuel Jacob <me@manueljacob.de> [Mon, 30 May 2022 16:18:12 +0200] rev 49263
node: stop converting binascii.Error to TypeError in bin() Changeset f574cc00831a introduced the wrapper, to make bin() behave like on Python 2, where it raised TypeError in many cases. Another previous approach, changing callers to catch binascii.Error in addition to TypeError, was backed out after negative review feedback [1]. However, I think it’s worth reconsidering the approach. Now that we’re on Python 3 only, callers have to catch only binascii.Error instead of both. Catching binascii.Error instead of TypeError has the advantage that it’s less likely to cover a programming error (e.g. passing an int to bin() raises TypeError). Also, raising TypeError never made sense semantically when bin() got an argument of valid type. As a side-effect, this fixed an exception in test-http-bad-server.t. The TODO was outdated: it was not an uncaught ValueError in batch.results() but uncaught TypeError from the now removed wrapper. Now that bin() raises binascii.Error instead of TypeError, it gets converted to a proper error in wirepeer.heads.<locals>.decode() that catches ValueError (superclass of binascii.Error). This is a good example of why this changeset is a good idea. Catching TypeError instead of ValueError there would not make much sense. [1] https://phab.mercurial-scm.org/D2244
Mon, 30 May 2022 00:45:00 +0200 revlog: make try block smaller
Manuel Jacob <me@manueljacob.de> [Mon, 30 May 2022 00:45:00 +0200] rev 49262
revlog: make try block smaller Making try blocks as small as possible is generally a good idea, especially when catching very general errors like TypeError.
Mon, 30 May 2022 00:39:53 +0200 revlog: make round-down pattern clearer
Manuel Jacob <me@manueljacob.de> [Mon, 30 May 2022 00:39:53 +0200] rev 49261
revlog: make round-down pattern clearer
Thu, 02 Jun 2022 16:24:06 +0200 branching: merge stable into default
Raphaël Gomès <rgomes@octobus.net> [Thu, 02 Jun 2022 16:24:06 +0200] rev 49260
branching: merge stable into default
Fri, 27 May 2022 02:54:20 +0200 test-revlog: adds a new root revision with a delta against nullrev
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 27 May 2022 02:54:20 +0200] rev 49259
test-revlog: adds a new root revision with a delta against nullrev We add a revision with null parent but that is not the first revision of the revlog. It make it a different a case that is worthy of testing.
Fri, 27 May 2022 02:52:46 +0200 test-revlog: adds a non-root revision with a delta against nullrev
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 27 May 2022 02:52:46 +0200] rev 49258
test-revlog: adds a non-root revision with a delta against nullrev Using a revision with non-null parents makes it a different case that is worthy of testing.
Fri, 27 May 2022 03:14:23 +0200 test-revlog: update the patch used to test delta againts nullrev
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 27 May 2022 03:14:23 +0200] rev 49257
test-revlog: update the patch used to test delta againts nullrev We need to be careful to not create invalid delta for changelog. Changelog is special because it does not use any delta in practice and don't use general delta in its format. Using the new patch will help use to test more cases.
Fri, 27 May 2022 14:37:12 +0400 tests: remove hg10 requirement from test-check-pylint.t
Anton Shestakov <av6@dwimlabs.net> [Fri, 27 May 2022 14:37:12 +0400] rev 49256
tests: remove hg10 requirement from test-check-pylint.t Since pylint does its own directory traversal to find files to check and doesn't use hg locate command, this requirement is not valid. See also a29f071751df.
Fri, 27 May 2022 14:33:32 +0400 tests: add hg10 requirement to test-check-module-imports.t
Anton Shestakov <av6@dwimlabs.net> [Fri, 27 May 2022 14:33:32 +0400] rev 49255
tests: add hg10 requirement to test-check-module-imports.t This requirement exists to make sure for hg has locate command, which is used in this test file for getting a list of files to check. Since in theory current versions of tests could be run on older hg, it doesn't hurt to mark even this version requirement (as old as it is). See also: a29f071751df.
Sun, 22 May 2022 00:10:58 +0200 worker: implement _blockingreader.readinto() (issue6444)
Manuel Jacob <me@manueljacob.de> [Sun, 22 May 2022 00:10:58 +0200] rev 49254
worker: implement _blockingreader.readinto() (issue6444) The core logic for readinto() was already implemented in read(), so this is mostly extracting that code into its own method. Another fix for issue6444 was committed to the stable branch: 2fe4efaa59af. That is a minimal fix that implements readinto() only on Python versions that require readinto() (3.8.0 and 3.8.1), which is the right approach for the stable branch. However, I think that this changeset has its value. It improves performance in cases when pickle can use readinto(), it reduces code duplication compared to the other patch, and by defining readinto() on all Python versions, it makes behavior more consistent across all Python versions. This changesets reverts the other change.
Sat, 21 May 2022 23:31:30 +0200 worker: stop relying on garbage collection to release memoryview
Manuel Jacob <me@manueljacob.de> [Sat, 21 May 2022 23:31:30 +0200] rev 49253
worker: stop relying on garbage collection to release memoryview On CPython, before resizing the bytearray, all memoryviews referencing it must be released. Before this change, we ensured that all references to them were deleted. On CPython, this was enough to set the reference count to zero, which results in garbage collecting and releasing them. On PyPy, releasing the memoryviews is not necessary because they are implemented differently. If it would be necessary however, ensuring that all references are deleted would not be suffient because PyPy doesn’t use reference counting. By using with statements that take care of releasing the memoryviews, we ensure that the bytearray is resizable without relying on implementation details. So while this doesn’t fix any observable bug, it increases compatiblity with other and future Python implementations.
Sat, 21 May 2022 22:24:02 +0200 worker: add docstring to _blockingreader
Manuel Jacob <me@manueljacob.de> [Sat, 21 May 2022 22:24:02 +0200] rev 49252
worker: add docstring to _blockingreader
(0) -30000 -10000 -3000 -1000 -300 -100 -12 +12 +100 +300 +1000 tip