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
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
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
dirstate: split dirstatemap in its own file
The dirstate file is large enough and the dirstatemap is quite insulated logic
already.
Differential Revision: https://phab.mercurial-scm.org/D10934
run-tests: stop writing a `python3` symlink pointing to python2
Having `python3` actually pointing to `python2` is bad. So we stop doing so.
In addition we need to re-introduce a `python` executable since some of the
script really need to be able to say "current python" in their shbang. For
example, `hghave` is one of such script.
The faulty changes where introduced by
c102b704edb5.
Differential Revision: https://phab.mercurial-scm.org/D10943
check-code: stop forbidding return code result
There is no explication of what is the intend of that check and what is the
alternative.
I suspect this comes from the transition to the "unified test" format circa
2010. With the non zero return explicitly listed in the output explicit $?
checking became Redundant. However there is valid use case for checking $? so I
am dropping this check.
Differential Revision: https://phab.mercurial-scm.org/D10994
run-tests: avoid an early return
To fix the "python3 pointing to python2" we will also need to create a "python"
pointer. So we will need to create multiple pointer. So we need to stop using
early return.
We replace the early return with a loop and a continue, since the next
changeset will introduce that loop anyway.
Differential Revision: https://phab.mercurial-scm.org/D10942
run-tests: clarify pyexename assignement
That assignement is wrong, we clarify that it is wrong before starting to fix
it. This will make the fix clearer.
Differential Revision: https://phab.mercurial-scm.org/D10941
run-tests: factor appdata out
This is a gratuitous readability change.
Differential Revision: https://phab.mercurial-scm.org/D10940
run-tests: unroll a non-so-one-liner
This is shorter and clearer.
Differential Revision: https://phab.mercurial-scm.org/D10939