Thu, 18 Nov 2021 22:49:05 +0100 status: adapt the "keyword" extensions to gather stats at lookup time
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
Thu, 18 Nov 2021 22:46:50 +0100 status: adapt largefile to gather stats at lookup time
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
Wed, 17 Nov 2021 23:37:47 +0100 status: gather fixup info at comparison time
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
Wed, 17 Nov 2021 10:22:15 +0100 update: filter the ambiguous mtime in update directly
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
Wed, 17 Nov 2021 12:24:00 +0100 dirstate: move "get fs now" in the timestamp utility module
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
Wed, 17 Nov 2021 10:26:48 +0100 dirstate-item: allow mtime to be None in "parentdata"
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
Wed, 17 Nov 2021 02:58:44 +0100 dirstate: add a comment about a racy piece of code during updates
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
Mon, 25 Oct 2021 15:11:53 +0200 tests: add missing `head` for when things go wrong
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
Tue, 23 Nov 2021 16:32:56 +0100 tests: ensure a status will have non ambiguous mtime in some race test
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
Thu, 18 Nov 2021 00:08:57 +0100 tests: make sure no ambiguities remains after the commit
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
Thu, 04 Nov 2021 17:49:25 +0100 dirstate: clarify a `hg update` invocation in a test
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
Wed, 01 Dec 2021 00:04:29 +0100 test: mark rhg output as flaky
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
Mon, 18 Oct 2021 12:30:53 -0700 chistedit: explain which order the commits are presented in
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
Mon, 22 Nov 2021 17:21:55 -0800 errors: use detailed error for invalid commit-extras argument
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
Fri, 19 Nov 2021 16:21:00 -0800 errors: use detailed exit code in pathauditor
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
Fri, 19 Nov 2021 16:16:21 -0800 errors: use detailed exit code for RepoLookupError
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
Fri, 19 Nov 2021 15:40:56 -0800 errors: use detailed exit code for detected case-collision
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
Fri, 19 Nov 2021 15:39:35 -0800 errors: use detailed exit code when trying to merge file outside narrowspec
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
Fri, 19 Nov 2021 15:38:36 -0800 errors: use detailed exit code for non-integer number of diff context lines
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
Fri, 19 Nov 2021 09:17:30 -0800 patch: add hint about mangled whitespace on bad patch
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
Fri, 19 Nov 2021 12:57:53 -0800 errors: return more detailed errors when failing to parse or apply patch
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
Fri, 26 Nov 2021 17:22:14 +0100 extensions: add a default "*" suboptions prefix
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
Fri, 26 Nov 2021 17:17:49 +0100 extension: add a `required` suboption to enforce the use of an extensions
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
Mon, 29 Nov 2021 13:09:04 +0100 extensions: highlight the name of the faulty extensions in the error message
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
Fri, 26 Nov 2021 16:55:34 +0100 extensions: refactor handling of loading error make it reusable
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
Fri, 26 Nov 2021 16:51:58 +0100 extensions: ignore "sub-options" when looking for extensions
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
Tue, 23 Nov 2021 17:52:38 -0800 automation: support Python 3.10 on Windows
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
Mon, 15 Nov 2021 20:10:50 -0800 contrib: update Windows environment to Python 3.9.9
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
Mon, 29 Nov 2021 14:07:47 +0000 rhg: implement the debugignorerhg subcommand
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
Mon, 29 Nov 2021 14:06:41 +0000 rhg: refactor to use IgnoreFnType alias more widely
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
Thu, 11 Nov 2021 14:26:25 +0000 rhg: only complain about poorly configured fallback when falling back
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
Wed, 24 Nov 2021 20:51:01 -0500 packaging: bump pygit2 to 1.7.1
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
Wed, 24 Nov 2021 20:45:27 -0500 packaging: bump windows_curses to 2.3.0
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
Wed, 24 Nov 2021 20:43:05 -0500 packaging: regenerate the requirements files with pip-tools 6.4.0
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
Fri, 26 Nov 2021 15:59:09 +0100 rhg: Add support for `rhg status -n`
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
Fri, 19 Nov 2021 18:48:34 -0800 filemerge: simplify slightly by using filectx.decodeddata()
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
Fri, 19 Nov 2021 18:14:25 -0800 filemerge: rename _formatconflictmarker() since it formats a label
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
Sun, 28 Nov 2021 11:27:08 +0100 tests: fix test-fix on NetBSD stable
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
Tue, 23 Nov 2021 20:04:22 +0100 rhg: Fix status desambiguation of symlinks and executable files
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
Tue, 23 Nov 2021 19:40:29 +0100 rhg: Rename cat_file_is_modified
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
Tue, 23 Nov 2021 19:39:51 +0100 rhg: Also parse flags in the manifest parser
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
Tue, 23 Nov 2021 18:27:42 +0100 rhg: Propogate manifest parse errors instead of panicking
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
Fri, 19 Nov 2021 17:34:48 +0100 tests: Adapt test-basic.t expected output for rhg
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
Tue, 09 Nov 2021 19:28:13 +0100 rhg: Colored output is not supported
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
Tue, 09 Nov 2021 19:09:57 +0100 rhg: [encode] and [decode] config sections are not supported
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
Tue, 09 Nov 2021 18:56:55 +0100 rhg: Config commands.status.terse is not supported
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
Tue, 09 Nov 2021 18:39:37 +0100 rhg: Propagate config errors in `rhg status`
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
Tue, 09 Nov 2021 17:09:40 +0100 rhg: $HG_PENDING is not supported
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
Tue, 09 Nov 2021 19:55:46 +0100 rhg: Enable `rhg status` in most tests
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
Tue, 23 Nov 2021 15:35:31 +0530 Added signature for changeset 5d08b289e2e5 stable
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 23 Nov 2021 15:35:31 +0530] rev 48334
Added signature for changeset 5d08b289e2e5
Tue, 23 Nov 2021 15:35:21 +0530 Added tag 6.0 for changeset 5d08b289e2e5 stable
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 23 Nov 2021 15:35:21 +0530] rev 48333
Added tag 6.0 for changeset 5d08b289e2e5
Wed, 17 Nov 2021 13:47:25 +0100 packaging: make rpm relocatable stable 6.0
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
Wed, 17 Nov 2021 13:28:22 +0100 dockerrpm: always use current user and group stable
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
Thu, 18 Nov 2021 12:31:37 +0100 cext: fix Python 3.11 compatibility - Py_SIZE is not an lvalue (issue6610) stable
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 .
Fri, 19 Nov 2021 11:20:10 +0100 branching: merge stable into default
Raphaël Gomès <rgomes@octobus.net> [Fri, 19 Nov 2021 11:20:10 +0100] rev 48329
branching: merge stable into default
Tue, 16 Nov 2021 16:38:37 +0100 heptapod-ci: re-introduce Windows CI stable
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
(0) -30000 -10000 -3000 -1000 -300 -100 -56 +56 +100 +300 +1000 +3000 tip