Fri, 16 Apr 2021 18:56:26 -0700 tests: fix test-chg to ignore a warning about being unable to set locale
Kyle Lippincott <spectral@google.com> [Fri, 16 Apr 2021 18:56:26 -0700] rev 47063
tests: fix test-chg to ignore a warning about being unable to set locale This is apparently coming from bash when bash is providing the sh that we're using to execute the .sh file generated by run-tests for this test. Bash on my machine: ``` $ sh --version GNU bash, version 5.1.4(1)-release (x86_64-pc-linux-gnu) Copyright (C) 2020 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software; you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. $ sh sh-5.1$ LC_CTYPE=unsupported_value echo hi sh: warning: setlocale: LC_CTYPE: cannot change locale (unsupported_value): No such file or directory hi ``` Differential Revision: https://phab.mercurial-scm.org/D10468
Tue, 27 Apr 2021 14:36:52 -0700 branch: delete obsolete message about changing branch of obsolete commit
Martin von Zweigbergk <martinvonz@google.com> [Tue, 27 Apr 2021 14:36:52 -0700] rev 47062
branch: delete obsolete message about changing branch of obsolete commit We now rely on `rewriteutil.precheck()` to check for divergence, so we don't need the extra check in `cmdutil.changebranch()`. The former check is a little less strict in that it allows you to rewrite a commit without non-obsolete successors. Differential Revision: https://phab.mercurial-scm.org/D10519
Tue, 23 Feb 2021 10:28:42 -0800 rewriteutil: check for divergence
Martin von Zweigbergk <martinvonz@google.com> [Tue, 23 Feb 2021 10:28:42 -0800] rev 47061
rewriteutil: check for divergence This code is adapted from the code in the evolve extension. It seems to be equivalent as far as the evolve extension's test suite can tell (the only impact when making their `precheck()` delegate to our version is that error messages are less detailed). I had to change the error message to work with "change branch of" being inserted as the action. Differential Revision: https://phab.mercurial-scm.org/D10518
Wed, 28 Apr 2021 08:48:10 -0700 rewriteutil: adapt "cannot %s while merging" to work with "change branch of"
Martin von Zweigbergk <martinvonz@google.com> [Wed, 28 Apr 2021 08:48:10 -0700] rev 47060
rewriteutil: adapt "cannot %s while merging" to work with "change branch of" `rewriteutil.precheck()` creates error messages by inserting a given verb into a sentence. The `hg branch -r` command passes in "change branch of" as the verb. That doesn't work well with "cannot %s while merging" (making it "cannot change branch of while merging"). Let's insert a "changeset" there to make it work better. Building sentences like this seems obviously bad for i18n, but fixing that is out of scope for this series, IMO. Differential Revision: https://phab.mercurial-scm.org/D10530
Thu, 11 Feb 2021 15:11:10 -0800 rewriteutil: point to help about instability when rewriting creates orphan
Martin von Zweigbergk <martinvonz@google.com> [Thu, 11 Feb 2021 15:11:10 -0800] rev 47059
rewriteutil: point to help about instability when rewriting creates orphan This replicates the message from the evolve extension. Differential Revision: https://phab.mercurial-scm.org/D10517
Tue, 27 Apr 2021 14:59:45 -0700 help: add topic about evolution, based on text from evolve extension
Martin von Zweigbergk <martinvonz@google.com> [Tue, 27 Apr 2021 14:59:45 -0700] rev 47058
help: add topic about evolution, based on text from evolve extension I've taken the text produced by `hg help evolution` when the evolve extension is enabled and made that available by the same command with just hg core. Changes I've made: * Added "(EXPERIMENTAL)" to the title. (That doesn't hide the topic from `hg help`, though.) * Replaced old-style `experimental.evolution=<names>` config by new-style `experimental.evolution.<name>=true`. * Replaces a "obsolete markers" by "obsolescence markers". * Removed most content from "Current feature status". When the evolve extension is enabled, its help text takes precedence. Differential Revision: https://phab.mercurial-scm.org/D10516
Thu, 11 Feb 2021 15:02:57 -0800 rewriteutil: add devel warning if precheck is called with contexts
Martin von Zweigbergk <martinvonz@google.com> [Thu, 11 Feb 2021 15:02:57 -0800] rev 47057
rewriteutil: add devel warning if precheck is called with contexts I'm trying to upstream parts from the evolve extension. This check exists there. Differential Revision: https://phab.mercurial-scm.org/D10515
Tue, 27 Apr 2021 11:02:41 -0700 rewriteutil: replace "null changeset" by "the null revision" in error message
Martin von Zweigbergk <martinvonz@google.com> [Tue, 27 Apr 2021 11:02:41 -0700] rev 47056
rewriteutil: replace "null changeset" by "the null revision" in error message The evolve extension uses "the null revision" and we seem to use that term much more frequently in core too. Differential Revision: https://phab.mercurial-scm.org/D10514
Mon, 29 Mar 2021 01:52:06 +0200 node: replace nullid and friends with nodeconstants class
Joerg Sonnenberger <joerg@bec.de> [Mon, 29 Mar 2021 01:52:06 +0200] rev 47055
node: replace nullid and friends with nodeconstants class The introduction of 256bit hashes require changes to nullid and other constant magic values. Start pushing them down from repository and revlog where sensible. Differential Revision: https://phab.mercurial-scm.org/D9465
Fri, 09 Jul 2021 00:25:14 +0530 Added signature for changeset 411dc27fd9fd stable
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 09 Jul 2021 00:25:14 +0530] rev 47054
Added signature for changeset 411dc27fd9fd
Fri, 09 Jul 2021 00:25:07 +0530 Added tag 5.8.1 for changeset 411dc27fd9fd stable
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 09 Jul 2021 00:25:07 +0530] rev 47053
Added tag 5.8.1 for changeset 411dc27fd9fd
Tue, 06 Jul 2021 16:12:09 +0200 corruption: backout changeset 49fd21f32695 (issue6528) stable 5.8.1
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 06 Jul 2021 16:12:09 +0200] rev 47052
corruption: backout changeset 49fd21f32695 (issue6528) inverting the parent is masking copy information leading to bad content being fetched and bad status result. Since 49fd21f32695, exchange can actively swap these parent corrupting existing changesets and triggering the corruption. Data corruption are considered critical so backing this out and doing and unscheduled release seems in order. Differential Revision: https://phab.mercurial-scm.org/D10995
Tue, 06 Jul 2021 19:22:50 +0200 corruption: add a test for issue6528 stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 06 Jul 2021 19:22:50 +0200] rev 47051
corruption: add a test for issue6528 The initial reproduction script was provided by Charles Chamberlain from Jane Street. Differential Revision: https://phab.mercurial-scm.org/D10996
Thu, 24 Jun 2021 03:22:03 +0200 stream: double check that self.vfs is *not* in the vfsmap stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 24 Jun 2021 03:22:03 +0200] rev 47050
stream: double check that self.vfs is *not* in the vfsmap The stream clone logic allows for writing any content to any file under various vfs. This is *not* suitable for *vfs*, since writing in `.hg/` directly allow to modify the configuration and is a great and simple gateway for remote code execution. Differential Revision: https://phab.mercurial-scm.org/D10905
Wed, 30 Jun 2021 14:17:28 +0200 Backed out changeset 9b8f326731ac stable
Mathias De Mare <mathias.de_mare@nokia.com> [Wed, 30 Jun 2021 14:17:28 +0200] rev 47049
Backed out changeset 9b8f326731ac Unfortunately, disabling the rust extensions means newer Mercurial versions no longer have the persistent-nodemap feature enabled. This means a Mercurial 5.8.1 on RPM-based Linux distributions will no longer be able to read repositories created by a Mercurial 5.8 on RPM-based Linux distributions. This violates the compatibility rules (see https://www.mercurial-scm.org/wiki/CompatibilityRules ). For this reason, I have to backout this change. I'll try to find another solution to the 'hg purge' crashes. Differential Revision: https://phab.mercurial-scm.org/D10918
Tue, 15 Jun 2021 09:06:12 +0200 packaging: disable rust extensions again on CentOS stable
Mathias De Mare <mathias.de_mare@nokia.com> [Tue, 15 Jun 2021 09:06:12 +0200] rev 47048
packaging: disable rust extensions again on CentOS Backed out changeset eccbfa7e19c0 We're seeing (very rarely) crashes of 'hg purge' on some of our machines (see https://bz.mercurial-scm.org/show_bug.cgi?id=6509 ). Unfortunately, I haven't been able to find out much more about what is going wrong. To avoid further impact on our users and CI, I would prefer to disable the rust extensions for now. Differential Revision: https://phab.mercurial-scm.org/D10877
Sun, 06 Jun 2021 01:24:30 +0200 cext: fix memory leak in phases computation stable
Georges Racinet <georges.racinet@octobus.net> [Sun, 06 Jun 2021 01:24:30 +0200] rev 47047
cext: fix memory leak in phases computation Without this a buffer whose size in bytes is the number of changesets in the repository is leaked each time the repository is opened and changeset phases are computed. Impact: the current code in hgwebdir creates a new `localrepository` instance for each HTTP request. Since any pull or push is made of several requests, a team of 100 people can easily produce thousands of such requests per day. Being a low-level malloc, this leak can't be seen with the gc module and tools relying on that, but was spotted by valgrind immediately. Reproduction ------------ for i in range(cl_args.iterations): repo = hg.repository(baseui, repo_path) rev = repo.revs(rev).first() ctx = repo[rev] del ctx del repo # avoid any pollution by other type of leak # (that should be fixed in 5.8) repoview._filteredrepotypes.clear() gc.collect() Measurements ------------ Resident Set Size (RSS), taken on a clone of mozilla-central for performance analysis (440 000 changesets). before: 5.8+hg19.5ac0f2a8ba72 1000 iterations: 1606MB 5.8+hg19.5ac0f2a8ba72 10000 iterations: 5723MB after: 5.8+hg20.e2084d39e145 1000 iterations: 555MB 5.8+hg20.e2084d39e145 10000 iterations: 555MB (double checked, not a copy/paste error) (e2084d39e14 is the present changeset, before amendment of the message to add the measurements)
Thu, 20 May 2021 14:20:39 -0400 tests: monkeypatch `util.get_password()` to avoid deadlocks on Windows stable
Matt Harbison <matt_harbison@yahoo.com> [Thu, 20 May 2021 14:20:39 -0400] rev 47046
tests: monkeypatch `util.get_password()` to avoid deadlocks on Windows This should have been part of 5b3513177f2b. Differential Revision: https://phab.mercurial-scm.org/D10759
Tue, 04 May 2021 10:46:50 +0200 rust-status: fix ignore and include not composing (issue6514) stable
Raphaël Gomès <rgomes@octobus.net> [Tue, 04 May 2021 10:46:50 +0200] rev 47045
rust-status: fix ignore and include not composing (issue6514) While the fix is pretty simple, the overall dispatch logic has become kind of ugly. Thankfully we're currently upstreaming a better algorithm, this code is temporary anyway. Differential Revision: https://phab.mercurial-scm.org/D10639
Tue, 04 May 2021 10:33:36 +0200 rust-status: highlight a bug in Rust-augmented status stable
Raphaël Gomès <rgomes@octobus.net> [Tue, 04 May 2021 10:33:36 +0200] rev 47044
rust-status: highlight a bug in Rust-augmented status This was reported in issue6514, confirmed with this test reproduction. This will be fixed with the next changeset. Differential Revision: https://phab.mercurial-scm.org/D10638
Fri, 07 May 2021 10:39:58 +0200 cache: avoid warming the fnodetags cache after clone stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 07 May 2021 10:39:58 +0200] rev 47043
cache: avoid warming the fnodetags cache after clone That cache can quite expensive to compute on large repository as not that `hg clone` is warming all cache, this can introduces a significant slowdown for clone time[1]. As a stop gap measure introduce a quick fix for that on stable, skipping the fnodetags cache post-clone. [1] https://www.mercurial-scm.org/pipermail/mercurial/2021-April/052679.html Differential Revision: https://phab.mercurial-scm.org/D10695
Wed, 05 May 2021 17:47:30 -0400 run-tests: fix whitelist/blacklist with directories on Windows stable
Matt Harbison <matt_harbison@yahoo.com> [Wed, 05 May 2021 17:47:30 -0400] rev 47042
run-tests: fix whitelist/blacklist with directories on Windows The file name is resolved with `os.path.relpath()` in the `Test` constructor, which yields `\` on Windows. That doesn't match the `/` separator when using MSYS tools to build the list, and it isn't obvious that this is the problem because directory separators can mostly be used interchangeably. The `--test-list` argument already seems to be properly handled.
Thu, 11 Mar 2021 23:20:41 -0500 run-tests: ignore PermissionError when checking available ports stable
Matt Harbison <matt_harbison@yahoo.com> [Thu, 11 Mar 2021 23:20:41 -0500] rev 47041
run-tests: ignore PermissionError when checking available ports I'm not sure what this is, but I'm getting it occasionally when running in WSL. When it was raised, none of the tests could run.
Mon, 12 Apr 2021 20:58:19 -0400 heptapod-ci: enable pytype checking stable
Matt Harbison <matt_harbison@yahoo.com> [Mon, 12 Apr 2021 20:58:19 -0400] rev 47040
heptapod-ci: enable pytype checking The trigger is manual for now, until we get a better idea about stability, resource usage, etc. Differential Revision: https://phab.mercurial-scm.org/D10462
Thu, 06 May 2021 18:40:23 -0400 hghave: fix the definition of `python3` to work on Windows stable
Matt Harbison <matt_harbison@yahoo.com> [Thu, 06 May 2021 18:40:23 -0400] rev 47039
hghave: fix the definition of `python3` to work on Windows Both py2 and py3 executables are named `python.exe`, and may or may not be on PATH. So use the dispatcher executable that comes with py3 to fetch the version of the latest py3 executable. This allows at least one relnotes test to run on Windows. Differential Revision: https://phab.mercurial-scm.org/D10694
Wed, 12 May 2021 12:41:52 -0400 util: avoid echoing the password to the console on Windows py3 (issue6446) stable
Matt Harbison <matt_harbison@yahoo.com> [Wed, 12 May 2021 12:41:52 -0400] rev 47038
util: avoid echoing the password to the console on Windows py3 (issue6446) The `getpass.getpass()` implementation on Windows first checks if `sys.stdin` and `sys.__stdin__` are the same object. It's not on py3 because the former is replaced in dispatch.py with something that doesn't normalize '\n' to '\r\n'. When they aren't the same object, it simply calls `sys.stdin.readline()` instead of the mscvrt functions that read the input characters before they are echoed. This simply copies the `getpass.win_getpass()` implementation without the stdin check, and byteifies around the edges. I'm not sure if there's a reasonable replacement for the check that we could implement. When echoing input into the hg command, the `ui.interactive()` check causes `ui.getpass()` to bail before getting here. If the proper config switches are used to bypass that and call this, the process stalls until '\n' is input into the console. So there could be a deadlock here when run by another command if the wrong config settings are applied. Differential Revision: https://phab.mercurial-scm.org/D10708
Mon, 10 May 2021 00:54:08 +0000 convert: update p4 for Python 3 stable
Nate Skulic <nate.skulic@gmail.com> [Mon, 10 May 2021 00:54:08 +0000] rev 47037
convert: update p4 for Python 3 Differential Revision: https://phab.mercurial-scm.org/D10703
Sun, 02 May 2021 16:56:20 -0400 tests: change the fixer commands to use the buffer attribute on stdio objects stable
Matt Harbison <matt_harbison@yahoo.com> [Sun, 02 May 2021 16:56:20 -0400] rev 47036
tests: change the fixer commands to use the buffer attribute on stdio objects Otherwise `\r` was getting injected into the fixed lines and throwing off the commit hashes on Windows when the fixer is invoked with py3. Differential Revision: https://phab.mercurial-scm.org/D10637
Sat, 01 May 2021 16:13:53 -0400 tests: stabilize test-persistent-nodemap.t on Windows stable
Matt Harbison <matt_harbison@yahoo.com> [Sat, 01 May 2021 16:13:53 -0400] rev 47035
tests: stabilize test-persistent-nodemap.t on Windows Several issues here: - Hooks can't invoke shell scripts on Windows, so use `sh` to launch - `dd` in MSYS only recognizes `status=noxfer` - The `PATH` updating triggered a massive slowdown, but is no longer needed I have no idea why, but removing the `PATH` update substantially increased the speed of the test. It was running finishing at ~4:30 with `--debug` and ~14:50 without it, but now completes in ~2:20 on my Windows laptop. Differential Revision: https://phab.mercurial-scm.org/D10636
Sun, 02 May 2021 19:54:08 -0400 tests: invoke some shell scripts through the shell interpreter for Windows stable
Matt Harbison <matt_harbison@yahoo.com> [Sun, 02 May 2021 19:54:08 -0400] rev 47034
tests: invoke some shell scripts through the shell interpreter for Windows Otherwise, Windows was prompting what program to use to open the file (or just opening it if there was a file association configured). Differential Revision: https://phab.mercurial-scm.org/D10635
(0) -30000 -10000 -3000 -1000 -300 -100 -50 -30 +30 +50 +100 +300 +1000 +3000 tip