Pulkit Goyal <7895pulkit@gmail.com> [Tue, 10 Aug 2021 19:19:53 +0530] rev 47819
Added signature for changeset 2813d406b036
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 10 Aug 2021 19:19:47 +0530] rev 47818
Added tag 5.9rc1 for changeset 2813d406b036
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 07 Aug 2021 16:51:47 +0200] rev 47817
issue6528: add a config option to control the fixing on the fly
This will allow people who know to be safe to avoid any performance overhead
(and other potential issue).
Differential Revision: https://phab.mercurial-scm.org/D11271
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 07 Aug 2021 14:12:28 +0200] rev 47816
issue6528: also filter delta on the fly when applying a changegroup
This ensure that corrupted clone does not spread corruption to "fixed" version.
This might come at a performance cost, we will had a config option to control
this behavior in the next changesets.
Differential Revision: https://phab.mercurial-scm.org/D11270
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 07 Aug 2021 14:13:53 +0200] rev 47815
filelog: open the writing context a bit earlier in `addgroup`
This is a small change made ahead of the next patch for clarification.
Differential Revision: https://phab.mercurial-scm.org/D11269
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 07 Aug 2021 12:39:01 +0200] rev 47814
issue6528: implement _is_revision_affected_fast using callback
The delta comming from a bundle/stream does not exists in the revlog yet, so we
will need other way to retrieve the same information.
To prepare for this we split the function to use callbacks in the core logic.
Differential Revision: https://phab.mercurial-scm.org/D11268
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 07 Aug 2021 12:38:48 +0200] rev 47813
issue6528: implement _is_revision_affected using callback
The delta comming from a bundle/stream does not exists in the revlog yet, so we
will need other way to retrieve the same information.
To prepare for this we split the function to use callbacks in the core logic.
Differential Revision: https://phab.mercurial-scm.org/D11267
Raphaël Gomès <rgomes@octobus.net> [Fri, 06 Aug 2021 12:10:36 +0200] rev 47812
debugcommands: add a `--paranoid` option to `debug-repair-issue-6528`
See justification inline.
Differential Revision: https://phab.mercurial-scm.org/D11263
Raphaël Gomès <rgomes@octobus.net> [Thu, 05 Aug 2021 17:00:03 +0200] rev 47811
repair: improve performance of detection of revisions affected by issue6528
Explanations inside the patch. I've tested this on Mozilla-Central and it's
5 times faster than the naive approach on my laptop.
Differential Revision: https://phab.mercurial-scm.org/D11262
Raphaël Gomès <rgomes@octobus.net> [Tue, 27 Jul 2021 21:45:27 +0200] rev 47810
debugcommands: introduce a debug command to repair repos affected by issue6528
This command is quite basic and slow, it will loop over the entirety of the
filelogs in the repository and check each revision for corruption, then fixes
the affected filelogs. It takes under 25 minutes for Mozilla-Central on my
not-top-of-the-line laptop, using the `--to-report` and `--from-report` options
will make this pretty tolerable to use, I think.
This change also introduces a test for the fix.
Differential Revision: https://phab.mercurial-scm.org/D11239
Matt Harbison <matt_harbison@yahoo.com> [Mon, 09 Aug 2021 19:49:57 -0400] rev 47809
contrib: switch the Windows bootstrap environment to py3.9
Use the built in `venv` module instead of `virtualenv` for simplicity, and
upgrade to a modern Mercurial that supports py3.
One issue here is that `venv` doesn't copy `python3{,Y}.dll` into the `Scripts`
subdirectory, so running the `hg.exe` that gets installed immediately fails on a
clean system because Python isn't in `PATH`. There is code in `python.exe` to
detect when it is in a venv and add the original python install to the DLL
lookup path, which we don't do in `hg.exe` yet. The simple workaround for now is
to run the `hg` script with `python.exe`. Typically `PYTHONLEGACYWINDOWSSTDIO`
must be set in the environment on Windows, but the clone process works without
it.
Differential Revision: https://phab.mercurial-scm.org/D11275
Matt Harbison <matt_harbison@yahoo.com> [Mon, 09 Aug 2021 19:36:26 -0400] rev 47808
contrib: comment out the 64-bit py38 dependency installation on Windows
Not sure what is going on here, but it appears to not install py3.8 x64 in the
usual `C:\hgdev` directory. The x32 installer works fine. I'm assuming this is
a bug in this version of the installer, but didn't look into it too much.
Differential Revision: https://phab.mercurial-scm.org/D11274
Matt Harbison <matt_harbison@yahoo.com> [Mon, 09 Aug 2021 19:32:44 -0400] rev 47807
contrib: drop python2.7 from the Windows dependency install script
While we aren't quite ready to drop py27 yet, the MS compiler is no longer
available from MS (there is a copy on github if it's really needed), and that
causes the script to fail.
Differential Revision: https://phab.mercurial-scm.org/D11273
Matt Harbison <matt_harbison@yahoo.com> [Mon, 09 Aug 2021 19:24:46 -0400] rev 47806
contrib: log the command and args for every process installing windows deps
This is a little noisier, but makes it simple to debug when things fail.
Differential Revision: https://phab.mercurial-scm.org/D11272
Raphaël Gomès <rgomes@octobus.net> [Fri, 23 Jul 2021 10:47:12 +0200] rev 47805
windows-ci: run Windows CI automatically alongside the others
This will enable us to make Windows Python 3 a first-class citizen for the next
6.0 cycle. We will probably get some flaky tests and we're missing others that
are skipped, but we'll turn them on it future patches.
Differential Revision: https://phab.mercurial-scm.org/D11256
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 05 Aug 2021 12:53:44 +0200] rev 47804
vfs: always use / as file separator (issue6546)
Various part of vfs already enforce `/` usage and using `\` confuse the encoded
vfs. So we simply use `/` all the time.
Differential Revision: https://phab.mercurial-scm.org/D11260
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 05 Aug 2021 12:53:36 +0200] rev 47803
subrepo: compare normalised vfs path
Otherwise the realpath call can turn `/` into `\` on windows confusing the
check.
(We probably needs this in more location)
Differential Revision: https://phab.mercurial-scm.org/D11259
Raphaël Gomès <rgomes@octobus.net> [Thu, 05 Aug 2021 18:25:35 +0200] rev 47802
pager: account for flakiness in Windows output
This test case is cursed and probably not worth losing more time over. This
makes apparent what the intended behavior is while still removing the flakiness
from the CI.
Differential Revision: https://phab.mercurial-scm.org/D11257
Raphaël Gomès <rgomes@octobus.net> [Fri, 23 Jul 2021 10:45:08 +0200] rev 47801
windows-ci: clean up the Heptapod CI file now that the baseline is solid
Enough work has been done one the CI side, this now works with little effort
on our side. The next patch will remove the manual switch.
Differential Revision: https://phab.mercurial-scm.org/D11254
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 03 Aug 2021 21:22:02 +0200] rev 47800
test-nointerrupt: make "sure" the handler "might" trigger (issue6558)
We are sure that the signal got sent in the right time frame, however, we still
have race, so either the code is actually buggy or we need some security to make
sure the signal get processed.
We might be affected by https://bugs.python.org/issue43406 ?
Differential Revision: https://phab.mercurial-scm.org/D11251
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 03 Aug 2021 19:26:26 +0200] rev 47799
testing: make sure write_file is "atomic"
This make sure viewer cannot see the new file with partial content.
This was likely the cause of some flakiness in `test-nointerrupt.t`
Differential Revision: https://phab.mercurial-scm.org/D11250
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 04 Aug 2021 19:45:13 +0200] rev 47798
test: disable test-subrepo-git.t in python2 + chg
I am a couple of days in try to debug that at it seems minor enough with enough
other priority to simply disable it for now.
Differential Revision: https://phab.mercurial-scm.org/D11253
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 03 Aug 2021 18:29:31 +0200] rev 47797
check-module-imports: ignore non-stdlib module installed by distribution
Previously, the check script would detect breezy as part of the stdlib if
installed using the debian package manager.
This silence the following complains:
tests/test-convert-bzr.t:117: imports not lexically sorted: breezy.bzr.bzrdir < sys
tests/test-convert-bzr.t:117: stdlib import "breezy.bzr.bzrdir" follows local import: breezy
tests/test-convert-bzr-ghosts.t:7: imports not lexically sorted: breezy.bzr.bzrdir < sys
tests/test-convert-bzr-ghosts.t:7: stdlib import "breezy.bzr.bzrdir" follows local import: breezy
tests/test-convert-bzr-treeroot.t:7: imports not lexically sorted: breezy.bzr.bzrdir < sys
tests/test-convert-bzr-treeroot.t:7: stdlib import "breezy.bzr.bzrdir" follows local import: breezy
Differential Revision: https://phab.mercurial-scm.org/D11249
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com> [Mon, 02 Aug 2021 08:06:27 -0400] rev 47796
remotefilelog: fix what looks like a wrong refactoring
when various store functions started returning a revlog type as the
first element of the tuple.
Differential Revision: https://phab.mercurial-scm.org/D11243