Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 17 Nov 2021 20:26:14 +0100] rev 48385
dirstate: make it mandatory to provide parentfiledata in `set_clean`
Gathering the mode, size and mtime, independently from determining that the file
is clean is a race-machine. So we just make these information required arguments.
(note that the data is still gathered in a racy way in practice, but at least
the API is no longer encouraging it.)
Differential Revision: https://phab.mercurial-scm.org/D11789
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 22 Nov 2021 15:58:51 +0100] rev 48384
dirstate: do no use `set_clean` in revert
The current `set_clean` usage is racy (the file might be modified between its
restoration and the `set_clean` call).
So we simply leave the file as ambiguous and the next status will fix that.
We still have to make sure the copy information is dropped, so we teach dirstate
how to do that.
The win32txt extension is confused after this because current logic is broken in
more location. However this series will ultimately fix that so we "ignore" it
for now. Fixing it now is complicated without some extra fix landing later.
Differential Revision: https://phab.mercurial-scm.org/D11788
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 18 Nov 2021 22:49:05 +0100] rev 48383
status: adapt the "keyword" extensions to gather stats at lookup time
See main core code for details.
We don't factor the code in a common function yet, because we will have to adapt
a bit more things in the keyword case at the end of the series.
Differential Revision: https://phab.mercurial-scm.org/D11787
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 18 Nov 2021 22:46:50 +0100] rev 48382
status: adapt largefile to gather stats at lookup time
See the core code for details of why we are doing this.
We don't factor the code in a common function yet, because we will have to adapt
a bit more things in the largefile case at the end of the series.
Differential Revision: https://phab.mercurial-scm.org/D11786
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 17 Nov 2021 23:37:47 +0100] rev 48381
status: gather fixup info at comparison time
This is still racy, but on a much small windows. In addition, the API now make
it possible for it to not be racy. This also unlock other cleanups that we are
about to do regarding mtime ambiguity at gathering time.
Differential Revision: https://phab.mercurial-scm.org/D11785
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 17 Nov 2021 10:22:15 +0100] rev 48380
update: filter the ambiguous mtime in update directly
Right now, this filtering is done by `dirstate.write` using the time of
`dirstate.write` method call. However that filtering is done "too late"
It works "fine" as most command are "fast enough", and race rare enough.
We are about to change the mtime filtering logic in the dirstate to be more
accurate and reliable.
However `hg update` will still need such filtering (mostly because it is
actually quite racy, even with the existing filtering). So we explicitly
implement a similar logic here. Before removing the older one later in the
series.
Differential Revision: https://phab.mercurial-scm.org/D11784
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 17 Nov 2021 12:24:00 +0100] rev 48379
dirstate: move "get fs now" in the timestamp utility module
We will need it during update.
Differential Revision: https://phab.mercurial-scm.org/D11783
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 17 Nov 2021 10:26:48 +0100] rev 48378
dirstate-item: allow mtime to be None in "parentdata"
This will be useful to filter out unreliable mtime.
Differential Revision: https://phab.mercurial-scm.org/D11782
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 17 Nov 2021 02:58:44 +0100] rev 48377
dirstate: add a comment about a racy piece of code during updates
This is a bit that is not really correct but works "fine" in practice. Let us
write the details down so that people stop wondering how that logic might be
correct… It is not.
Differential Revision: https://phab.mercurial-scm.org/D11781
Raphaël Gomès <rgomes@octobus.net> [Mon, 25 Oct 2021 15:11:53 +0200] rev 48376
tests: add missing `head` for when things go wrong
See comment above the changed line, you can get a millions of line of output in
case of failure. When don't need to have them all.
Differential Revision: https://phab.mercurial-scm.org/D11780
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 23 Nov 2021 16:32:56 +0100] rev 48375
tests: ensure a status will have non ambiguous mtime in some race test
For the test to work, we need some mtime to be recorded. For them to be recorded, they need to be "clearly in the past", otherwise edit with the same mtime would be possible.
Strictly speaking there might be file system with a minimal mtime increment
longer than one second. However it is unlikely that we will run the test on
them for now. We can be smarter about this in the future if it becomes
necessary.
Differential Revision: https://phab.mercurial-scm.org/D11779
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 18 Nov 2021 00:08:57 +0100] rev 48374
tests: make sure no ambiguities remains after the commit
This will help to stabilize part of the test that are not relevant for what is
actually tested.
Differential Revision: https://phab.mercurial-scm.org/D11778
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 04 Nov 2021 17:49:25 +0100] rev 48373
dirstate: clarify a `hg update` invocation in a test
It is common for readers of that test to confuse the `hg co` call with a `hg
commit`, while it actually means `hg checkout`, an alias for the more common
`hg update.
So let us use the clearer version.
Differential Revision: https://phab.mercurial-scm.org/D11777
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 01 Dec 2021 00:04:29 +0100] rev 48372
test: mark rhg output as flaky
rhg is not updating the dirstate on status yet, which make this part of the test
flaky. This will be fixed soon.
Differential Revision: https://phab.mercurial-scm.org/D11833
Martin von Zweigbergk <martinvonz@google.com> [Mon, 18 Oct 2021 12:30:53 -0700] rev 48371
chistedit: explain which order the commits are presented in
It's not obvious which order the commits in chistedit (and text-based
histedit), so let's add a note about it.
Differential Revision: https://phab.mercurial-scm.org/D11832
Martin von Zweigbergk <martinvonz@google.com> [Mon, 22 Nov 2021 17:21:55 -0800] rev 48370
errors: use detailed error for invalid commit-extras argument
Differential Revision: https://phab.mercurial-scm.org/D11831
Martin von Zweigbergk <martinvonz@google.com> [Fri, 19 Nov 2021 16:21:00 -0800] rev 48369
errors: use detailed exit code in pathauditor
Differential Revision: https://phab.mercurial-scm.org/D11830
Martin von Zweigbergk <martinvonz@google.com> [Fri, 19 Nov 2021 16:16:21 -0800] rev 48368
errors: use detailed exit code for RepoLookupError
Differential Revision: https://phab.mercurial-scm.org/D11829
Martin von Zweigbergk <martinvonz@google.com> [Fri, 19 Nov 2021 15:40:56 -0800] rev 48367
errors: use detailed exit code for detected case-collision
Differential Revision: https://phab.mercurial-scm.org/D11828
Martin von Zweigbergk <martinvonz@google.com> [Fri, 19 Nov 2021 15:39:35 -0800] rev 48366
errors: use detailed exit code when trying to merge file outside narrowspec
Differential Revision: https://phab.mercurial-scm.org/D11827
Martin von Zweigbergk <martinvonz@google.com> [Fri, 19 Nov 2021 15:38:36 -0800] rev 48365
errors: use detailed exit code for non-integer number of diff context lines
Differential Revision: https://phab.mercurial-scm.org/D11826
Martin von Zweigbergk <martinvonz@google.com> [Fri, 19 Nov 2021 09:17:30 -0800] rev 48364
patch: add hint about mangled whitespace on bad patch
One of the most common reasons that a patch doesn't apply is because
its whitespace has been mangled (e.g. by their mail client or though
copy&paste). Let's provide a hint about that.
Differential Revision: https://phab.mercurial-scm.org/D11825
Martin von Zweigbergk <martinvonz@google.com> [Fri, 19 Nov 2021 12:57:53 -0800] rev 48363
errors: return more detailed errors when failing to parse or apply patch
This patch adds subclasses of `PatchError` so we can distinguish
between failure to parse a patch from failure to apply it. It updates
the callers to raise either `InputError` or `StateError` depending on
which type of error occurred.
Differential Revision: https://phab.mercurial-scm.org/D11824
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 26 Nov 2021 17:22:14 +0100] rev 48362
extensions: add a default "*" suboptions prefix
This is similar to what we do in other section (e.g. `paths`) and allow to
change the behavior for all extensions.
Sub options on individual extensions overwrite the default settings.
Differential Revision: https://phab.mercurial-scm.org/D11823
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 26 Nov 2021 17:17:49 +0100] rev 48361
extension: add a `required` suboption to enforce the use of an extensions
If `required` is set, failing to load an extensions will abort. See the test
and documentation for details.
Differential Revision: https://phab.mercurial-scm.org/D11822
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 29 Nov 2021 13:09:04 +0100] rev 48360
extensions: highlight the name of the faulty extensions in the error message
This make it easier to understand the message when the extensions name is
common.
Differential Revision: https://phab.mercurial-scm.org/D11821
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 26 Nov 2021 16:55:34 +0100] rev 48359
extensions: refactor handling of loading error make it reusable
We will need this in the next patch.
Differential Revision: https://phab.mercurial-scm.org/D11820
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 26 Nov 2021 16:51:58 +0100] rev 48358
extensions: ignore "sub-options" when looking for extensions
config suboptions are separated by ":" (see the path one for example). So we
dont want to confuse these config with actual extensions.
We don't have extensions sub option yet, but I am about to introduce one for
making sure an extensions can load. So lets level the floor first.
Differential Revision: https://phab.mercurial-scm.org/D11819
Gregory Szorc <gregory.szorc@gmail.com> [Tue, 23 Nov 2021 17:52:38 -0800] rev 48357
automation: support Python 3.10 on Windows
Python 3.10 is out and we should support it. This commit teaches the
automation code to install and support building for Python 3.10.
Differential Revision: https://phab.mercurial-scm.org/D11776
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 15 Nov 2021 20:10:50 -0800] rev 48356
contrib: update Windows environment to Python 3.9.9
Let's keep the environment modern.
Differential Revision: https://phab.mercurial-scm.org/D11775
Arseniy Alekseyev <aalekseyev@janestreet.com> [Mon, 29 Nov 2021 14:07:47 +0000] rev 48355
rhg: implement the debugignorerhg subcommand
This can be used to inspect the generated pattern, but also to benchmark
the time it takes to parse hgignore.
Differential Revision: https://phab.mercurial-scm.org/D11722
Arseniy Alekseyev <aalekseyev@janestreet.com> [Mon, 29 Nov 2021 14:06:41 +0000] rev 48354
rhg: refactor to use IgnoreFnType alias more widely
Differential Revision: https://phab.mercurial-scm.org/D11818
Arseniy Alekseyev <aalekseyev@janestreet.com> [Thu, 11 Nov 2021 14:26:25 +0000] rev 48353
rhg: only complain about poorly configured fallback when falling back
Differential Revision: https://phab.mercurial-scm.org/D11751
Matt Harbison <matt_harbison@yahoo.com> [Wed, 24 Nov 2021 20:51:01 -0500] rev 48352
packaging: bump pygit2 to 1.7.1
Differential Revision: https://phab.mercurial-scm.org/D11805
Matt Harbison <matt_harbison@yahoo.com> [Wed, 24 Nov 2021 20:45:27 -0500] rev 48351
packaging: bump windows_curses to 2.3.0
This is required for Python 3.10 support.
Differential Revision: https://phab.mercurial-scm.org/D11804
Matt Harbison <matt_harbison@yahoo.com> [Wed, 24 Nov 2021 20:43:05 -0500] rev 48350
packaging: regenerate the requirements files with pip-tools 6.4.0
Somewhere along the line, the formatting changed. There's no change in package
content here- it's just some minor text changes. Py2 doesn't have any packages
we'll be updating, so I'm not bothering there.
Differential Revision: https://phab.mercurial-scm.org/D11803
Simon Sapin <simon.sapin@octobus.net> [Fri, 26 Nov 2021 15:59:09 +0100] rev 48349
rhg: Add support for `rhg status -n`
The `RHG_STATUS=1` bit added here can be removed when `unset RHG_STATUS` near
the top of the file is removed.
Differential Revision: https://phab.mercurial-scm.org/D11815
Martin von Zweigbergk <martinvonz@google.com> [Fri, 19 Nov 2021 18:48:34 -0800] rev 48348
filemerge: simplify slightly by using filectx.decodeddata()
Differential Revision: https://phab.mercurial-scm.org/D11802
Martin von Zweigbergk <martinvonz@google.com> [Fri, 19 Nov 2021 18:14:25 -0800] rev 48347
filemerge: rename _formatconflictmarker() since it formats a label
`_formatconflictmarker()`'s name made me think that it would create
something like `<<<<<<<` and maybe some more stuff after it, but it's
actually just the label that comes after on the same line. So let's
rename it to `_formatlabel()`. That's better aligned with the
variables the result is assigned it.
Differential Revision: https://phab.mercurial-scm.org/D11801
Thomas Klausner <wiz@gatalith.at> [Sun, 28 Nov 2021 11:27:08 +0100] rev 48346
tests: fix test-fix on NetBSD
Differential Revision: https://phab.mercurial-scm.org/D11816
Simon Sapin <simon.sapin@octobus.net> [Tue, 23 Nov 2021 20:04:22 +0100] rev 48345
rhg: Fix status desambiguation of symlinks and executable files
Differential Revision: https://phab.mercurial-scm.org/D11774
Simon Sapin <simon.sapin@octobus.net> [Tue, 23 Nov 2021 19:40:29 +0100] rev 48344
rhg: Rename cat_file_is_modified
It hasn’t been based on the "cat operation" for some time already.
Differential Revision: https://phab.mercurial-scm.org/D11773
Simon Sapin <simon.sapin@octobus.net> [Tue, 23 Nov 2021 19:39:51 +0100] rev 48343
rhg: Also parse flags in the manifest parser
Differential Revision: https://phab.mercurial-scm.org/D11772
Simon Sapin <simon.sapin@octobus.net> [Tue, 23 Nov 2021 18:27:42 +0100] rev 48342
rhg: Propogate manifest parse errors instead of panicking
The Rust parser for the manifest file format is an iterator. Now every item
from that iterator is a `Result`, which makes error handling required
in multiple new places.
This makes better recovery on errors possible, compare to a run time panic.
Differential Revision: https://phab.mercurial-scm.org/D11771
Simon Sapin <simon.sapin@octobus.net> [Fri, 19 Nov 2021 17:34:48 +0100] rev 48341
tests: Adapt test-basic.t expected output for rhg
Differential Revision: https://phab.mercurial-scm.org/D11769
Simon Sapin <simon.sapin@octobus.net> [Tue, 09 Nov 2021 19:28:13 +0100] rev 48340
rhg: Colored output is not supported
Fallback if it is requested explicitly.
The default is documented as use color "whenever it seems possible".
rhg proceeds without color in that case.
Differential Revision: https://phab.mercurial-scm.org/D11762
Simon Sapin <simon.sapin@octobus.net> [Tue, 09 Nov 2021 19:09:57 +0100] rev 48339
rhg: [encode] and [decode] config sections are not supported
Differential Revision: https://phab.mercurial-scm.org/D11761
Simon Sapin <simon.sapin@octobus.net> [Tue, 09 Nov 2021 18:56:55 +0100] rev 48338
rhg: Config commands.status.terse is not supported
Differential Revision: https://phab.mercurial-scm.org/D11760
Simon Sapin <simon.sapin@octobus.net> [Tue, 09 Nov 2021 18:39:37 +0100] rev 48337
rhg: Propagate config errors in `rhg status`
This code was calling `Result::unwrap_or` instead of `Option::unwrap_or`
as was presumably intended.
Differential Revision: https://phab.mercurial-scm.org/D11759
Simon Sapin <simon.sapin@octobus.net> [Tue, 09 Nov 2021 17:09:40 +0100] rev 48336
rhg: $HG_PENDING is not supported
Trigger fallback in that case, if configured to do so.
Differential Revision: https://phab.mercurial-scm.org/D11758
Simon Sapin <simon.sapin@octobus.net> [Tue, 09 Nov 2021 19:55:46 +0100] rev 48335
rhg: Enable `rhg status` in most tests
This subcommand is disabled by default because of bugs that make some test fail.
Enable it in the rest of the tests in order to avoid regressing them.
As with `RHG_ON_UNSUPPORTED`, an environment variable is used instead of
a configuration file and `HGRCPATH` because some tests override `HGRCPATH`.
Running `unset RHG_STATUS` at the start of a test restores the default of
`rhg status` being disabled. Hopefully it can be increasingly removed
from test files as bugs are fixed.
Differential Revision: https://phab.mercurial-scm.org/D11756
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 23 Nov 2021 15:35:31 +0530] rev 48334
Added signature for changeset
5d08b289e2e5
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 23 Nov 2021 15:35:21 +0530] rev 48333
Added tag 6.0 for changeset
5d08b289e2e5
Mathias De Mare <mathias.de_mare@nokia.com> [Wed, 17 Nov 2021 13:47:25 +0100] rev 48332
packaging: make rpm relocatable
This makes it possible to install multiple Mercurial rpms on the same machine
in different locations.
Differential Revision: https://phab.mercurial-scm.org/D11768
Mathias De Mare <mathias.de_mare@nokia.com> [Wed, 17 Nov 2021 13:28:22 +0100] rev 48331
dockerrpm: always use current user and group
Using uid 1000 and gid 1000 works by default in some cases,
but 'id -u' and 'id -g' should work in all cases.
Differential Revision: https://phab.mercurial-scm.org/D11767
Mads Kiilerich <mads@kiilerich.com> [Thu, 18 Nov 2021 12:31:37 +0100] rev 48330
cext: fix Python 3.11 compatibility - Py_SIZE is not an lvalue (
issue6610)
Py_SIZE was made a static inline function during Python 3.10 development, as
described on https://vstinner.github.io/c-api-opaque-structures.html .
e92ca942ddca updated the Mercurial code base accordingly, but somehow missed a
couple of cases introduced long time ago in
a8c948ee3668.
The Python change was dropped for 3.10, but is coming back again in 3.11 .
Raphaël Gomès <rgomes@octobus.net> [Fri, 19 Nov 2021 11:20:10 +0100] rev 48329
branching: merge stable into default
Raphaël Gomès <rgomes@octobus.net> [Tue, 16 Nov 2021 16:38:37 +0100] rev 48328
heptapod-ci: re-introduce Windows CI
We have Windows runners for now, and we're trying to find more, so let's share
the joy of flaky tests with everyone.
Differential Revision: https://phab.mercurial-scm.org/D11765
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 15 Nov 2021 19:53:01 -0800] rev 48327
cext: define S_IFLNK on Python 2.7 and Windows
Before this change, building on Python 2.7 on Windows fails due to
S_IFLNK being undefined. This regression was introduced by
a32a96079e2d / D11518.
It worked on Python 3 because its pyport.h (which is included via
Python.h) contains effectively the same code as added by this
changeset.
Differential Revision: https://phab.mercurial-scm.org/D11763
Thomas Klausner <wiz@gatalith.at> [Mon, 15 Nov 2021 12:03:28 +0100] rev 48326
tests: dd status=noxfer is not portable (
issue6523)
Differential Revision: https://phab.mercurial-scm.org/D11754
Thomas Klausner <wiz@gatalith.at> [Mon, 15 Nov 2021 00:15:21 +0100] rev 48325
tests: use more portable mkdir -p instead of --parents (
issue6591)
Differential Revision: https://phab.mercurial-scm.org/D11755
Thomas Klausner <wiz@gatalith.at> [Mon, 15 Nov 2021 00:08:02 +0100] rev 48324
tests: fix test-censor by improving regexp (
issue6585)
Differential Revision: https://phab.mercurial-scm.org/D11753
Martin von Zweigbergk <martinvonz@google.com> [Wed, 10 Nov 2021 08:09:34 -0800] rev 48323
ci: stop running with Python 2
We're dropping support for Python 2 after hg 6.0.
Differential Revision: https://phab.mercurial-scm.org/D11748
Raphaël Gomès <rgomes@octobus.net> [Wed, 10 Nov 2021 11:43:22 +0100] rev 48322
internals: typo pass on the dirstate-v2 help file
Differential Revision: https://phab.mercurial-scm.org/D11747
Raphaël Gomès <rgomes@octobus.net> [Wed, 10 Nov 2021 11:42:13 +0100] rev 48321
dirstate-v2: fix confusion between requirement and format config variable
None of those outputs failed on the CI because dirstate-v2 is not fully tested
yet. This also updates the documentation.
Differential Revision: https://phab.mercurial-scm.org/D11746
Raphaël Gomès <rgomes@octobus.net> [Wed, 10 Nov 2021 10:58:13 +0100] rev 48320
internals: correct dirstate-v2 format variable in the documentation
Differential Revision: https://phab.mercurial-scm.org/D11745
Raphaël Gomès <rgomes@octobus.net> [Wed, 10 Nov 2021 10:50:54 +0100] rev 48319
hghave: update dirstate-v2 format config option
It wasn't kept in sync with the new change in format name.
Differential Revision: https://phab.mercurial-scm.org/D11744
Augie Fackler <augie@google.com> [Wed, 10 Nov 2021 14:54:55 -0500] rev 48318
merge: with stable
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 09 Nov 2021 22:06:40 +0530] rev 48317
Added signature for changeset
a44bb185f6bd
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 09 Nov 2021 22:06:26 +0530] rev 48316
Added tag 6.0rc0 for changeset
a44bb185f6bd
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 09 Nov 2021 21:56:04 +0530] rev 48315
merge with default
pacien <pacien.trangirard@pacien.net> [Tue, 09 Nov 2021 02:19:43 +0100] rev 48314
tests: accept alternative privileged port allocation failure
This registers an additional failure message on failed privileged port
allocation, equally funcionally valid but previously not handled and causing
the test to fail when run in the NixOS sandbox.
Differential Revision: https://phab.mercurial-scm.org/D11741
pacien <pacien.trangirard@pacien.net> [Tue, 09 Nov 2021 02:16:43 +0100] rev 48313
tests: allow the true command to be provided by coreutils
The `true` command is sometimes provided as a symbolic link to the `coreutils`
single binary. This is the case on NixOS, on which the test was failing because
the symbolic link fully resolves to the latter name, equally valid but not
previously accepted by the test's golden output.
Differential Revision: https://phab.mercurial-scm.org/D11740
pacien <pacien.trangirard@pacien.net> [Tue, 09 Nov 2021 02:08:18 +0100] rev 48312
tests: add guard check for suid support
This adds a check for setuid and setgid support and guards a part of a test
requiring this particular filesystem feature.
Such feature is notably missing in the Nix/NixOS build sandbox and was causing
the whole test to fail for the mercurial package.
Differential Revision: https://phab.mercurial-scm.org/D11739
Arseniy Alekseyev <aalekseyev@janestreet.com> [Tue, 26 Oct 2021 19:47:30 +0100] rev 48311
rhg: more efficient `HgPath::join`
This commit makes `HgPath::join` slightly more efficient
by avoiding one copy.
It also avoids a particularly inefficient (quadratic) use of
`HgPath::join` by using a new mutating function `HgPathBuf::push` instead.
The name for `HgPathBuf::push` is chosen by analogy to `PathBuf::push`.
Differential Revision: https://phab.mercurial-scm.org/D11721
Raphaël Gomès <rgomes@octobus.net> [Tue, 09 Nov 2021 15:25:38 +0100] rev 48310
relnotes: update 6.0 with the last changes for the release
Differential Revision: https://phab.mercurial-scm.org/D11742
Simon Sapin <simon.sapin@octobus.net> [Tue, 09 Nov 2021 15:43:29 +0100] rev 48309
rhg: Fix `rhg status` file content comparison
This is only used when a file’s metadata make its status ambiguous,
which depends on timing of previous command executions.
Differential Revision: https://phab.mercurial-scm.org/D11743
Arseniy Alekseyev <aalekseyev@janestreet.com> [Wed, 27 Oct 2021 19:37:46 +0100] rev 48308
rhg: make it possible to opt out of `rhg cat`
The reason an opt-out is needed is that there are still behavior
differences between `rhg cat` and `hg cat`:
- it does not interpret relative paths correctly
- it does not interpret patterns correctly, e.g. 're:foobar$' would be interpreted as a verbatim filename
- it does not implement the correct semantics of relpath matcher: if given a directory, `hg` concatenates all files in this directory, while `rhg` simply complains
Differential Revision: https://phab.mercurial-scm.org/D11723
pacien <pacien.trangirard@pacien.net> [Tue, 09 Nov 2021 02:00:25 +0100] rev 48307
tests: run the whole hg-core/path_auditor test in a clean temp dir
This makes the whole test happen in a clean temporary directory in
`$TMPDIR/$random`, and simplifies the test a bit by eliminating unnecessarily
dynamic path elements computations.
Before this patch, the first part of the test was happening in `/tmp` itself.
This allowed coincidentally named files placed in that directory to impact the
outcome of the test. Additionally, this made the second part of the test fail
on systems on which `$TMPDIR != /tmp`, because the inspected directory was
different from the one in which the mock files were being written. This fully
fixes the issue only partially solved in
db2bc9e667a1.
Differential Revision: https://phab.mercurial-scm.org/D11738
Raphaël Gomès <rgomes@octobus.net> [Wed, 20 Oct 2021 10:25:51 +0200] rev 48306
fsmonitor: fix traceback after removal of nonnormalset (
issue6600)
This basically does the same thing it used to do, but in the only place it's
needed.
Differential Revision: https://phab.mercurial-scm.org/D11707
Raphaël Gomès <rgomes@octobus.net> [Wed, 20 Oct 2021 10:26:39 +0200] rev 48305
fsmonitor: fix traceback about bytes and str incompatibility
This didn't work anymore in Python 3, switching to a `repr` based reporting does
Differential Revision: https://phab.mercurial-scm.org/D11708
Raphaël Gomès <rgomes@octobus.net> [Wed, 27 Oct 2021 15:18:52 +0200] rev 48304
backout: backed out changeset
67d14d4e036c
Same as the previous patch, this breaks the Windows CI for some yet unknown
reason.
Differential Revision: https://phab.mercurial-scm.org/D11727
Raphaël Gomès <rgomes@octobus.net> [Wed, 27 Oct 2021 12:07:58 +0200] rev 48303
backout: backed out changeset
f78d8b8c46d7
This and the following backout exist because the original patches break the
Windows CI for some yet unknown reason.
Differential Revision: https://phab.mercurial-scm.org/D11726
Raphaël Gomès <rgomes@octobus.net> [Thu, 04 Nov 2021 12:35:05 +0100] rev 48302
relnotes: clear next release notes
Differential Revision: https://phab.mercurial-scm.org/D11737
Raphaël Gomès <rgomes@octobus.net> [Thu, 04 Nov 2021 12:34:51 +0100] rev 48301
relnotes: add 6.0 release notes
Differential Revision: https://phab.mercurial-scm.org/D11736
Raphaël Gomès <rgomes@octobus.net> [Thu, 04 Nov 2021 09:55:37 +0100] rev 48300
relnotes: fix wrong command name in 5.9 relnotes
Differential Revision: https://phab.mercurial-scm.org/D11735
Kyle Lippincott <spectral@google.com> [Wed, 03 Nov 2021 14:11:11 -0700] rev 48299
pyoxidizer: use in-memory resources on non-Windows platforms
In-memory resources were disabled for macOS in
7bc1beed, and for all platforms
in
c900d962. Unfortunately this made it so that we were no longer producing
standalone binaries on these platforms, and would have to ship the .py and .pyc
files alongside the pyoxidized binary.
These changes are no longer necessary after
f6b04591, which disabled pep517 and
solved the issue we were encountering.
Differential Revision: https://phab.mercurial-scm.org/D11734
Raphaël Gomès <rgomes@octobus.net> [Wed, 03 Nov 2021 12:35:57 +0100] rev 48298
compat: don't rely on cpython-specific builtins manipulation
Pierre Augier signaled on the mailing list that this fails on Pypy and pointed
out the correct solution.
Differential Revision: https://phab.mercurial-scm.org/D11732
Raphaël Gomès <rgomes@octobus.net> [Wed, 03 Nov 2021 17:06:01 +0100] rev 48297
rust-format: update rustfmt version
This hasn't been updated in a while, and since we're updating the MSRV to
1.48.0, we might as well do this.
Differential Revision: https://phab.mercurial-scm.org/D11733
Raphaël Gomès <rgomes@octobus.net> [Wed, 25 Aug 2021 17:53:19 +0200] rev 48296
rust: update the minimum version of Rust
Debian Bullseye has just been released, and it carries `rustc 1.48.0`.
This actually implies a regression that we can't really do anything about in
`rhg`. See https://github.com/rust-lang/rust/issues/88825. In short, closed (or
bad) standard file descriptors are reopened silently with no way of telling by
the Rust runtime before `main` is executed. This means that closed fds are not
forwarded to the subprocess we run in case of fallback. This is a bit sad, but
probably not something worth worrying too much about.
Differential Revision: https://phab.mercurial-scm.org/D11341
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 20 Oct 2021 00:57:02 +0200] rev 48295
dirstate-v2: freeze the on-disk format
It seems the format as reached a good balance. With a core of new capabilities
that motivated it initially and enough new feature and room for future
improvement to be a clear progress we can set a milestone for.
Having the format frozen will help the feature to get real life testing, outside
of the test suite.
The feature itself stay experimental but the config gains a new name to avoid
people enable non-frozen version by default.
If too many bugs are reported during the RC we might move the format back to
experimental and drop its support in future version (in favor of a new one)
Differential Revision: https://phab.mercurial-scm.org/D11709
Augie Fackler <augie@google.com> [Mon, 01 Nov 2021 14:59:07 -0400] rev 48294
merge: with stable
Raphaël Gomès <rgomes@octobus.net> [Fri, 22 Oct 2021 09:45:35 +0200] rev 48293
windows: use raw string in test log paths
Otherwise the backslashes will work as escapes on Windows and break everything.
Differential Revision: https://phab.mercurial-scm.org/D11725
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 29 Oct 2021 14:40:46 +0200] rev 48292
pull: make the new argument a keyword argument
As per feedback from Dan Villiom Podlaski Christiansen
in https://phab.mercurial-scm.org/D11674#179866
Differential Revision: https://phab.mercurial-scm.org/D11730
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 28 Oct 2021 17:44:58 +0200] rev 48291
dirstate: make sure that status does not overlook the fallback flags
Without this extra checks, file with fallback flags change as the only change
would be overlooked.
In the future we might store proper data in the dirstate and do less lookup.
However, for now this will do to make sure that 6.0 is forward compatible with
later version.
Differential Revision: https://phab.mercurial-scm.org/D11729
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 28 Oct 2021 17:26:03 +0200] rev 48290
dirstate: use a single closure for get_flags
The previous code was overlooking fallback when neither symlink not exec was
supported.
The number of "variants" is getting too high, so I am consolidating this in a
single closure that should be easier to maintains.
This also ensure that fallback flags are always taken into account.
(they are not user code yet, but small experimentation shown that the feature
was working as intended.)
A a small side effect we need to check for symlink support more lazily and this
show up in the test in a couple of places.
Differential Revision: https://phab.mercurial-scm.org/D11728