Tue, 07 Jul 2020 21:45:10 +0200 phases: provide a test and accessor for non-public phase roots
Joerg Sonnenberger <joerg@bec.de> [Tue, 07 Jul 2020 21:45:10 +0200] rev 45114
phases: provide a test and accessor for non-public phase roots This decouples users from the implementation details of the phasecache. Also document a historic artifact about the stored phaseroots. Differential Revision: https://phab.mercurial-scm.org/D8694
Wed, 24 Jun 2020 17:53:44 +0200 hg-core: define a `dirstate_status` `Operation`
Raphaël Gomès <rgomes@octobus.net> [Wed, 24 Jun 2020 17:53:44 +0200] rev 45113
hg-core: define a `dirstate_status` `Operation` This is 3/3 in a series of patches to improve dirstate status' code. Following in the footsteps of a46e36b82461, we move the main status functionality to an `Operation`. This will most likely be subject to change in the future (what function signature, what parameters, etc., but we will see when `rhg` gets `hg status` support. Differential Revision: https://phab.mercurial-scm.org/D8663
Wed, 24 Jun 2020 17:20:39 +0200 rust-status: improve documentation and readability
Raphaël Gomès <rgomes@octobus.net> [Wed, 24 Jun 2020 17:20:39 +0200] rev 45112
rust-status: improve documentation and readability This patch is 2/3 in the series to improve the dirstate status code. It adds a number of common type aliases to add more obvious semantics to function signatures, improves/adds documentation where necessary and improves one or two patterns to be more idiomatic. Differential Revision: https://phab.mercurial-scm.org/D8662
Wed, 24 Jun 2020 16:12:45 +0200 rust-status: refactor status into a struct
Raphaël Gomès <rgomes@octobus.net> [Wed, 24 Jun 2020 16:12:45 +0200] rev 45111
rust-status: refactor status into a struct The code for `dirstate/status` has grown too large for comfort, this is the first of three patches that try to improve maintainability. In this patch, refactoring dirstate's status into a struct allows for slimming down function signatures drastically, keeping the mental (and maintenance) burden lower, since pretty much all of them shared a few common arguments. This had the pleasant side-effect of simplifying lifetimes a little. This has no observable impact on performance. The next patch will add/improve documentation and refactor some types. I tried to keep new code down to a minimum in this patch because it's already pretty big. Differential Revision: https://phab.mercurial-scm.org/D8661
Fri, 13 Dec 2019 22:20:03 -0800 tests: avoid "magic" nodeids in test-rebase-legacy.t
Martin von Zweigbergk <martinvonz@google.com> [Fri, 13 Dec 2019 22:20:03 -0800] rev 45110
tests: avoid "magic" nodeids in test-rebase-legacy.t This helps with readability. Differential Revision: https://phab.mercurial-scm.org/D8735
Fri, 13 Dec 2019 22:08:18 -0800 tests: avoid a "magic" nodeid in test-wireproto-command-lookup.t
Martin von Zweigbergk <martinvonz@google.com> [Fri, 13 Dec 2019 22:08:18 -0800] rev 45109
tests: avoid a "magic" nodeid in test-wireproto-command-lookup.t This helps with readability. Differential Revision: https://phab.mercurial-scm.org/D8734
Mon, 22 Jun 2020 13:51:48 +0530 run-tests: replace '#' with '-' in temp path of repos created for tests
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 22 Jun 2020 13:51:48 +0530] rev 45108
run-tests: replace '#' with '-' in temp path of repos created for tests If we have multiple cases in a test, that leads us to a temp path of format "<temp-path>-<case1>#<case2>". This leads to hg.parseurl() parsing the path and take part after `#` as a branch name. I encountered this bug while adding support for share-safe case in next patch. Differential Revision: https://phab.mercurial-scm.org/D8647
Tue, 14 Apr 2020 17:06:11 +0530 debugcommands: introduce new debugrequirements command
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 14 Apr 2020 17:06:11 +0530] rev 45107
debugcommands: introduce new debugrequirements command This for now just prints out the list of current requirements. In future this will be helpful in reading requirements from couple of sources, and checking which requirement comes from where. Differential Revision: https://phab.mercurial-scm.org/D8632
Tue, 14 Apr 2020 16:43:54 +0530 scmutil: add writereporequirements() and route requires writing through it
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 14 Apr 2020 16:43:54 +0530] rev 45106
scmutil: add writereporequirements() and route requires writing through it In upcoming patches, to implement Share Safe plan we will be introducing requires file in store. We need to route all callers to a single function to check for a share-safe requirement and if present, write requirements to .hg/store/requires instead. After this patch, callers directly calling scmutil.writerequires() are only those where we don't have the repo object, for example when initializing the repository object itself. Differential Revision: https://phab.mercurial-scm.org/D8631
Tue, 14 Jul 2020 11:28:06 -0700 extensions: make `hg nonexistent` not crash with PyOxidizer
Martin von Zweigbergk <martinvonz@google.com> [Tue, 14 Jul 2020 11:28:06 -0700] rev 45105
extensions: make `hg nonexistent` not crash with PyOxidizer When running `hg nonexistent`, we try to look for extensions that provide that command. We do that by looking for files in the `hgext.__file__` directory. However, PyOxidizer doesn't provide a `__file__`, so we crash when running with PyOxidizer. We should be able to look for the command in built-in extensions, but we seem to already have code for skipping the scan when running in a frozen binary, so I just modified that code instead. By the way, it also seems like we should be able to search for extensions in the `hgext3rd` module, but we don't do that yet either (before or after this patch). Differential Revision: https://phab.mercurial-scm.org/D8750
Thu, 09 Jul 2020 12:52:04 +0200 procutil: avoid use of deprecated tempfile.mktemp()
Manuel Jacob <me@manueljacob.de> [Thu, 09 Jul 2020 12:52:04 +0200] rev 45104
procutil: avoid use of deprecated tempfile.mktemp() In the previous version, I used tempfile.mktemp() because it seemed to be the only way to open a file from two processes (the Python documentation says the file backing NamedTemporaryFile can’t be opened a second time on Windows). However, it’s possible when passing the O_TEMPORARY flag to the second open. Source: https://stackoverflow.com/a/15235559/6366251
Wed, 15 Jul 2020 15:09:21 +0200 procutil: make _make_write_all() function private
Manuel Jacob <me@manueljacob.de> [Wed, 15 Jul 2020 15:09:21 +0200] rev 45103
procutil: make _make_write_all() function private Because this function isn’t meant for general use (e.g., it’s Python 2-only), make in a module-private function by prefixing it with `_`.
Mon, 13 Jul 2020 21:14:20 +0900 dispatch: handle late KeyboardInterrupt occurred in run()
Yuya Nishihara <yuya@tcha.org> [Mon, 13 Jul 2020 21:14:20 +0900] rev 45102
dispatch: handle late KeyboardInterrupt occurred in run() User can press Ctrl+C while flushing streams in dispatch.run(). In such case, I think exiting with 255 is better than printing Python traceback and exiting with 1.
Mon, 13 Jul 2020 21:06:34 +0900 dispatch: indent run() function
Yuya Nishihara <yuya@tcha.org> [Mon, 13 Jul 2020 21:06:34 +0900] rev 45101
dispatch: indent run() function I'll add KeyboardInterrupt handling there.
Thu, 09 Jul 2020 19:16:52 +0900 debuginstall: don't translate encoding messages
Yuya Nishihara <yuya@tcha.org> [Thu, 09 Jul 2020 19:16:52 +0900] rev 45100
debuginstall: don't translate encoding messages While Microsoft trained us to read mojibake text, it doesn't make sense to print mojibake messages when debugging the exact issue.
Wed, 15 Jul 2020 10:34:59 -0400 merge with stable
Augie Fackler <augie@google.com> [Wed, 15 Jul 2020 10:34:59 -0400] rev 45099
merge with stable
Mon, 06 Jul 2020 15:31:53 +0530 patch: refactor content diffing part in separate fn so extensions can wrap
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 06 Jul 2020 15:31:53 +0530] rev 45098
patch: refactor content diffing part in separate fn so extensions can wrap Right now extdiff uses it's own logic using archival to diff two versions of file using external diff tools. This makes the extdiff functionality non-extensible. This series is an attempt to refactor core patch and diff functionality so that extdiff can wrap and reuse it. This will help us in using external diffing tools at more places and not just extdiff command only then. Differential Revision: https://phab.mercurial-scm.org/D8685
Thu, 09 Jul 2020 12:52:04 +0200 tests: check that procutil.std{out,err}.write() returns correct result
Manuel Jacob <me@manueljacob.de> [Thu, 09 Jul 2020 12:52:04 +0200] rev 45097
tests: check that procutil.std{out,err}.write() returns correct result On Windows, we currently don’t fully test the case when the stream is connected to a TTY, but we test the child process side by connecting them to NUL, which is recognized as a TTY by Python. To make the large write test a bit more useful besides checking that it doesn’t crash, we can check that the write() method returns the correct result.
Thu, 09 Jul 2020 12:52:42 +0200 tests: add tests for when stdout or stderr is connected to `os.devnull`
Manuel Jacob <me@manueljacob.de> [Thu, 09 Jul 2020 12:52:42 +0200] rev 45096
tests: add tests for when stdout or stderr is connected to `os.devnull` The original motivation was that creating PTYs on Windows is not possible, but `NUL` is recognized as a TTY, so we can have at least some test coverage for the TTY case. I think it doesn’t hurt to run the test cases on all systems.
Fri, 10 Jul 2020 12:27:58 +0200 procutil: ensure that procutil.std{out,err}.write() writes all bytes
Manuel Jacob <me@manueljacob.de> [Fri, 10 Jul 2020 12:27:58 +0200] rev 45095
procutil: ensure that procutil.std{out,err}.write() writes all bytes Python 3 offers different kind of streams and it’s not guaranteed for all of them that calling write() writes all bytes. When Python is started in unbuffered mode, sys.std{out,err}.buffer are instances of io.FileIO, whose write() can write less bytes for platform-specific reasons (e.g. Linux has a 0x7ffff000 bytes maximum and could write less if interrupted by a signal; when writing to Windows consoles, it’s limited to 32767 bytes to avoid the "not enough space" error). This can lead to silent loss of data, both when using sys.std{out,err}.buffer (which may in fact not be a buffered stream) and when using the text streams sys.std{out,err} (I’ve created a CPython bug report for that: https://bugs.python.org/issue41221). Python may fix the problem at some point. For now, we implement our own wrapper for procutil.std{out,err} that calls the raw stream’s write() method until all bytes have been written. We don’t use sys.std{out,err} for larger writes, so I think it’s not worth the effort to patch them.
Sat, 11 Jul 2020 07:47:04 +0200 procutil: move assignments
Manuel Jacob <me@manueljacob.de> [Sat, 11 Jul 2020 07:47:04 +0200] rev 45094
procutil: move assignments This should probably be part of the previous patch, but folding it results in a less useful word diff, so I decided to keep it separate for review.
Fri, 10 Jul 2020 10:12:04 +0200 procutil: distribute code for stdout
Manuel Jacob <me@manueljacob.de> [Fri, 10 Jul 2020 10:12:04 +0200] rev 45093
procutil: distribute code for stdout It makes sense to have the distinction between Python 2 and 3 at the top level, as we have to fight a different kind of battle on each: On Python 3, we get consistent behavior on all platforms, but need to create correctly-behaving binary streams. On Python 2, we have to account for platform differences.
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 45092
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 45091
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 45090
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 45089
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 45088
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 45087
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 45086
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 45085
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 45084
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 45083
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 45082
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 45081
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 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).
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 45079
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 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.
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 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
Thu, 21 May 2020 18:18:50 +0200 hooklib: fix detection of successors for changeset_obsoleted
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
Thu, 09 Jul 2020 20:46:52 -0700 fix: prefetch file contents
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
Thu, 09 Jul 2020 20:45:35 -0700 fix: obtain base paths before starting workers
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
Thu, 09 Jul 2020 18:48:55 -0700 scmutil: allowing different files to be prefetched per revision
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
Sat, 11 Jul 2020 00:31:21 +0530 tests: update test-devel-warnings.t output with chg
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 11 Jul 2020 00:31:21 +0530] rev 45072
tests: update test-devel-warnings.t output with chg
Tue, 07 Jul 2020 11:10:07 +0200 tests: make names in test-stdio.py more distinctive
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.
Tue, 07 Jul 2020 12:35:29 +0200 tests: terminate subprocess in test-stdio.py in case of exception
Manuel Jacob <me@manueljacob.de> [Tue, 07 Jul 2020 12:35:29 +0200] rev 45070
tests: terminate subprocess in test-stdio.py in case of exception If an error happened while reading the output of the subprocess, the pipe / TTY buffer can fill up and prevent that the subprocess ends. Therefore we should terminate the subprocess in case of an exception.
Tue, 07 Jul 2020 11:06:37 +0200 tests: proof test-stdio.py against buffer fill-up
Manuel Jacob <me@manueljacob.de> [Tue, 07 Jul 2020 11:06:37 +0200] rev 45069
tests: proof test-stdio.py against buffer fill-up With the previous code, it could in theory happen that the pipe / PTY buffer of the child stdout / stderr fills up and the process never finishes. To prevent that, we read all of the stream before waiting for the end of the process. To ensure that the stream reaches EOF when the child finishes, we must close the parent "copy" of the child stdout / stderr.
Thu, 09 Jul 2020 23:03:34 -0400 tests: stablize test-serve.t on Windows
Matt Harbison <matt_harbison@yahoo.com> [Thu, 09 Jul 2020 23:03:34 -0400] rev 45068
tests: stablize test-serve.t on Windows I forget the reason that the subprocess on Windows doesn't print this, but all other instances of this are similarly conditionalized, so I didn't think too hard about it. Also, the server needs to be killed so it doesn't prevent the next run from working, especially since the port isn't randomized. Differential Revision: https://phab.mercurial-scm.org/D8720
Mon, 06 Jul 2020 21:08:15 +0200 commitctx: document the manifest writing function
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 06 Jul 2020 21:08:15 +0200] rev 45067
commitctx: document the manifest writing function Same spirit as for `_filecommit` lets document the input and output before making any change or improvement. This is part of a larger refactoring/cleanup of the commitctx code to clarify and augment the logic gathering metadata useful for copy tracing. The current code is a tad too long and entangled to make such update easy. We start with easy and small cleanup. Differential Revision: https://phab.mercurial-scm.org/D8705
Mon, 06 Jul 2020 19:16:04 +0200 commitctx: reorder some conditional for efficiency in _filecommit
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 06 Jul 2020 19:16:04 +0200] rev 45066
commitctx: reorder some conditional for efficiency in _filecommit Checking if a dict is empty will be faster than comparing text. I don't expect it to be a huge performance win, but still a good (but gratuitous) cleanup to do while we are at it. This is part of a larger refactoring/cleanup of the commitctx code to clarify and augment the logic gathering metadata useful for copy tracing. The current code is a tad too long and entangled to make such update easy. We start with easy and small cleanup. Differential Revision: https://phab.mercurial-scm.org/D8701
Mon, 06 Jul 2020 18:52:19 +0200 commitctx: document _filecommit input and output
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 06 Jul 2020 18:52:19 +0200] rev 45065
commitctx: document _filecommit input and output This is the beginning of a larger refactoring/cleanup of the commitctx code to clarify and augment the logic gathering metadata useful for copy tracing. The current code is a tad too long and entangled to make such update easy. We start with easy and small cleanup. Differential Revision: https://phab.mercurial-scm.org/D8699
Tue, 07 Jul 2020 21:57:46 +0200 phases: replace magic number by constant
Joerg Sonnenberger <joerg@bec.de> [Tue, 07 Jul 2020 21:57:46 +0200] rev 45064
phases: replace magic number by constant Differential Revision: https://phab.mercurial-scm.org/D8695
Mon, 22 Jun 2020 00:00:07 +0200 clonebundles: optional memory-requirement attribution
Joerg Sonnenberger <joerg@bec.de> [Mon, 22 Jun 2020 00:00:07 +0200] rev 45063
clonebundles: optional memory-requirement attribution The new REQUIREDRAM option allows a client to skip bundles it isn't expected to handle well, e.g. without swapping. This allows a fallback path to be provided e.g. using zstd level 10 instead of 22. Differential Revision: https://phab.mercurial-scm.org/D8645
Tue, 09 Jun 2020 11:22:31 +0200 util: provide a helper function to estimate RAM size
Joerg Sonnenberger <joerg@bec.de> [Tue, 09 Jun 2020 11:22:31 +0200] rev 45062
util: provide a helper function to estimate RAM size For POSIX systems, it uses sysconf. For Windows, it uses the win32 API directly. Differential Revision: https://phab.mercurial-scm.org/D8644
Thu, 02 Jul 2020 19:59:59 +0200 tests: allow timing difference in output
Joerg Sonnenberger <joerg@bec.de> [Thu, 02 Jul 2020 19:59:59 +0200] rev 45061
tests: allow timing difference in output Differential Revision: https://phab.mercurial-scm.org/D8676
Mon, 22 Jun 2020 13:32:20 +0200 documentation: add some internals documentation about bid merge
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 22 Jun 2020 13:32:20 +0200] rev 45060
documentation: add some internals documentation about bid merge This is an important algorithm that was only documented on the wiki so far. Some update to the algorithm (and associated doc) is to expected in the future since the bid merge algorithm is bug-ridden when it comes to file deletion comes to play. Differential Revision: https://phab.mercurial-scm.org/D8711
Sun, 28 Jun 2020 17:32:32 +0900 cmdserver: document message-encodings and channel output options
Yuya Nishihara <yuya@tcha.org> [Sun, 28 Jun 2020 17:32:32 +0900] rev 45059
cmdserver: document message-encodings and channel output options While writing the previous patch, I noticed these options are undocumented. In my testing, a separate status/error message channel works well in GUI frontend as we no longer have to sort out data and message from mixed outputs. So let's mark it as not experimental.
Sat, 27 Jun 2020 21:46:23 +0900 cmdserver: add option to not exit from message loop on SIGINT
Yuya Nishihara <yuya@tcha.org> [Sat, 27 Jun 2020 21:46:23 +0900] rev 45058
cmdserver: add option to not exit from message loop on SIGINT Sending SIGINT to server is the only way to interrupt a command running in command-server process. SIGINT will be caught at dispatch.dispatch() if we're lucky. Otherwise it will terminate the serer process. This is fundamentally unreliable as signals are delivered asynchronously. "cmdserver.shutdown-on-interrupt=False" mitigate the issue by making the server basically block SIGINT.
Mon, 06 Jul 2020 17:51:18 +0200 pycompat: remove pycompat.{stdin,stdout,stderr}
Manuel Jacob <me@manueljacob.de> [Mon, 06 Jul 2020 17:51:18 +0200] rev 45057
pycompat: remove pycompat.{stdin,stdout,stderr} All users have been changed to use procutil.{stdin,stdout,stderr}, which provide consistent behavior across platforms and Python versions.
Mon, 06 Jul 2020 17:44:25 +0200 pycompat: change users of pycompat.{stdin,stdout,stderr} to use procutil.std*
Manuel Jacob <me@manueljacob.de> [Mon, 06 Jul 2020 17:44:25 +0200] rev 45056
pycompat: change users of pycompat.{stdin,stdout,stderr} to use procutil.std* On Python 3, pycompat.{stdin,stdout,stderr} are usually block-buffered even if connected to a TTY. procutil.{stdin,stdout,stderr} provide consistent behavior across platforms and Python versions.
Mon, 06 Jul 2020 10:30:55 +0200 hgignore: add mypy cache files
Antoine Cezar <antoine.cezar@octobus.net> [Mon, 06 Jul 2020 10:30:55 +0200] rev 45055
hgignore: add mypy cache files Differential Revision: https://phab.mercurial-scm.org/D8692
(0) -30000 -10000 -3000 -1000 -300 -100 -60 +60 +100 +300 +1000 +3000 tip