Sat, 11 Jul 2020 03:17:42 +0200 overlayworkingctx: remove unused `nofilechanges()` and `_compact()` methods
Manuel Jacob <me@manueljacob.de> [Sat, 11 Jul 2020 03:17:42 +0200] rev 45091
overlayworkingctx: remove unused `nofilechanges()` and `_compact()` methods Differential Revision: https://phab.mercurial-scm.org/D8733
Sat, 11 Jul 2020 03:10:23 +0200 rebase: correctly check for empty commit in in-memory mode
Manuel Jacob <me@manueljacob.de> [Sat, 11 Jul 2020 03:10:23 +0200] rev 45090
rebase: correctly check for empty commit in in-memory mode The new code has a small overhead in the empty commit case, as a `memctx` object is always created, but I don’t think it’s justified here to duplicate code to optimize a relatively unlikely code path. Differential Revision: https://phab.mercurial-scm.org/D8732
Sat, 11 Jul 2020 02:13:19 +0200 memctx: make `parents()` return list of one element if it’s not a merge
Manuel Jacob <me@manueljacob.de> [Sat, 11 Jul 2020 02:13:19 +0200] rev 45089
memctx: make `parents()` return list of one element if it’s not a merge It is part of the contract of `parents()` that non-merges return a list of one element. `self._parents` is always a list of two elements in `memctx`. Differential Revision: https://phab.mercurial-scm.org/D8731
Sat, 11 Jul 2020 01:14:00 +0200 commit: factor out empty commit check to `basectx.isempty()`
Manuel Jacob <me@manueljacob.de> [Sat, 11 Jul 2020 01:14:00 +0200] rev 45088
commit: factor out empty commit check to `basectx.isempty()` This enables reuse in other places, e.g. those dealing with `memctx`. Differential Revision: https://phab.mercurial-scm.org/D8729
Sat, 11 Jul 2020 00:53:34 +0200 overlayworkingctx: rename misleadingly named `isempty()` method
Manuel Jacob <me@manueljacob.de> [Sat, 11 Jul 2020 00:53:34 +0200] rev 45087
overlayworkingctx: rename misleadingly named `isempty()` method This method is only about whether there are file changes, not about whether the commit will be empty or not. One user of the method was incorrectly assuming the latter meaning, leading to the bug for which a test case was added in D8727. I’ve added a FIXME to the code. The original motivation for the rename was that I want to add `committablectx.isempty()`, that properly checks if a commit will be empty, using the exact same logic as in `repo.commit()`, and I wanted to avoid a name clash. Differential Revision: https://phab.mercurial-scm.org/D8728
Fri, 10 Jul 2020 01:36:19 +0200 rebase: add test case that shows that inmemory rebase does not preserve merges
Manuel Jacob <me@manueljacob.de> [Fri, 10 Jul 2020 01:36:19 +0200] rev 45086
rebase: add test case that shows that inmemory rebase does not preserve merges Differential Revision: https://phab.mercurial-scm.org/D8727
Thu, 09 Jul 2020 07:00:32 +0200 rebase: remove now unnecessary logic to allow empty commit when branch changes
Manuel Jacob <me@manueljacob.de> [Thu, 09 Jul 2020 07:00:32 +0200] rev 45085
rebase: remove now unnecessary logic to allow empty commit when branch changes This was a workaround for a bug in the empty commit check in repo.commit(), where the parent branch name was incorrectly compared with the wdir branch name instead of the branch name passed via `extra`. The bug was fixed in D8724. The workaround was introduced in b2415e94b2f5. Differential Revision: https://phab.mercurial-scm.org/D8725
Fri, 10 Jul 2020 00:44:18 +0200 commit: check branch change on to-be-committed changeset
Manuel Jacob <me@manueljacob.de> [Fri, 10 Jul 2020 00:44:18 +0200] rev 45084
commit: check branch change on to-be-committed changeset This makes a difference when a branch name is passed via the `extra` argument, which will be used as the branch name for the created changeset. The empty commit check should use that branch name instead of whatever was set on the working directory. Besides fixing the bug for which a test case was extended, it enables to remove a workaround in the rebase extension, which will be done in a follow-up patch (D8725). Differential Revision: https://phab.mercurial-scm.org/D8724
Mon, 13 Jul 2020 13:06:12 -0400 merge with stable
Augie Fackler <augie@google.com> [Mon, 13 Jul 2020 13:06:12 -0400] rev 45083
merge with stable
Fri, 10 Jul 2020 10:12:56 +0200 procutil: move comment closer to relevant code
Manuel Jacob <me@manueljacob.de> [Fri, 10 Jul 2020 10:12:56 +0200] rev 45082
procutil: move comment closer to relevant code
Fri, 10 Jul 2020 10:03:05 +0200 procutil: use mercurial.windows.winstdout only on Python 2 and TTYs
Manuel Jacob <me@manueljacob.de> [Fri, 10 Jul 2020 10:03:05 +0200] rev 45081
procutil: use mercurial.windows.winstdout only on Python 2 and TTYs Python 3 already works around the bug. The workaround is only needed when writing to consoles. If stdout is a console, sys.stdout.isatty() is true.
Fri, 10 Jul 2020 09:59:36 +0200 procutil: split if condition
Manuel Jacob <me@manueljacob.de> [Fri, 10 Jul 2020 09:59:36 +0200] rev 45080
procutil: split if condition This prepares the code for subsequent changes where we need to differentiate between the two cases.
Fri, 10 Jul 2020 09:55:38 +0200 procutil: explain better why line buffering is not possible
Manuel Jacob <me@manueljacob.de> [Fri, 10 Jul 2020 09:55:38 +0200] rev 45079
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).
Tue, 07 Jul 2020 12:13:40 +0200 tests: make subprocess handling reusable for different tests in test-stdio.py
Manuel Jacob <me@manueljacob.de> [Tue, 07 Jul 2020 12:13:40 +0200] rev 45078
tests: make subprocess handling reusable for different tests in test-stdio.py
Sat, 11 Jul 2020 06:03:22 +0200 procutil: back out 8403cc54bc83 (make ....procutil.stderr unbuffered)
Manuel Jacob <me@manueljacob.de> [Sat, 11 Jul 2020 06:03:22 +0200] rev 45077
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.
Thu, 09 Jul 2020 02:16:26 +0200 test-clone-uncompressed: use config to silence the lock warning
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 09 Jul 2020 02:16:26 +0200] rev 45076
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
(0) -30000 -10000 -3000 -1000 -300 -100 -16 +16 +100 +300 +1000 +3000 tip