Thu, 15 Sep 2022 01:48:38 +0200 templates: add filter to reverse list
Manuel Jacob <me@manueljacob.de> [Thu, 15 Sep 2022 01:48:38 +0200] rev 49494
templates: add filter to reverse list The filter supports only lists because for lists, it’s straightforward to implement. Reversing text doesn’t seem very useful and is hard to implement. Reversing the bytes would break multi-bytes encodings. Reversing the code points would break characters consisting of multiple code points. Reversing graphemes is non-trivial without using a library not included in the standard library.
Wed, 07 Sep 2022 14:56:45 -0400 requires: re-use vfs.tryread for simplicity
Jason R. Coombs <jaraco@jaraco.com> [Wed, 07 Sep 2022 14:56:45 -0400] rev 49493
requires: re-use vfs.tryread for simplicity Avoids calling `set` twice or having to re-raise an exception and implements the routine with a single return expression.
Tue, 20 Sep 2022 13:38:07 -0400 tests: fix the flaky test test-logtoprocess.t stable
Arseniy Alekseyev <aalekseyev@janestreet.com> [Tue, 20 Sep 2022 13:38:07 -0400] rev 49492
tests: fix the flaky test test-logtoprocess.t The main change is that we're waiting for the [touched] file to appear for 5 seconds instead of 0.1 seconds. Also, instead of implementing wait-on-file from scratch, we use the existing one from testlib/ that works well.
Tue, 30 Aug 2022 15:29:55 -0400 bisect: avoid copying ancestor list for non-merge commits
Arun Kulshreshtha <akulshreshtha@janestreet.com> [Tue, 30 Aug 2022 15:29:55 -0400] rev 49491
bisect: avoid copying ancestor list for non-merge commits During a bisection, hg needs to compute a list of all ancestors for every candidate commit. This is accomplished via a bottom-up traversal of the set of candidates, during which each revision's ancestor list is populated using the ancestor list of its parent(s). Previously, this involved copying the entire list, which could be very long in if the bisection range was large. To help improve this, we can observe that each candidate commit is visited exactly once, at which point its ancestor list is copied into its children's lists and then dropped. In the case of non-merge commits, a commit's ancestor list consists exactly of its parent's list plus itself. This means that we can trivially reuse the parent's existing list for one of its non-merge children, which avoids copying entirely if that commit is the parent's only child. This makes bisections over linear ranges of commits much faster. During some informal testing in the large publicly-available `mozilla-central` repository, this noticeably sped up bisections over large ranges of history: Setup: $ cd mozilla-central $ hg bisect --reset $ hg bisect --good 0 $ hg log -r tip -T '{rev}\n' 628417 Test: $ time hg bisect --bad tip --noupdate Before: real 3m35.927s user 3m35.553s sys 0m0.319s After: real 1m41.142s user 1m40.810s sys 0m0.285s
Tue, 06 Sep 2022 15:08:52 -0400 packaging: update dulwich to drop the certifi dependency on Windows stable
Matt Harbison <matt_harbison@yahoo.com> [Tue, 06 Sep 2022 15:08:52 -0400] rev 49490
packaging: update dulwich to drop the certifi dependency on Windows The presence of `certifi` causes the system certificate store to be ignored, which was reported as a bug against TortoiseHg[1]. It was only pulled in on Windows because of `dulwich`, which was copied from the old TortoiseHg install scripts, in order to support `hg-git`. This version of `dulwich` raises the minimum `urllib3` to a version (1.25) that does certificate verification by default, without the help of `certifi`[2]. We already bundle a newer version of `urllib3`. Note that `certifi` can still be imported from the user site directory, if installed there. But the installer no longer disables the system certificates by default. [1] https://foss.heptapod.net/mercurial/tortoisehg/thg/-/issues/5825 [2] https://github.com/jelmer/dulwich/issues/1025
Mon, 19 Sep 2022 17:34:42 -0400 tests: fix tar invocation, to address issue 6740 stable
Arseniy Alekseyev <aalekseyev@janestreet.com> [Mon, 19 Sep 2022 17:34:42 -0400] rev 49489
tests: fix tar invocation, to address issue 6740
Mon, 25 Jul 2022 15:39:04 +0200 rhg-status: add support for narrow clones
Raphaël Gomès <rgomes@octobus.net> [Mon, 25 Jul 2022 15:39:04 +0200] rev 49488
rhg-status: add support for narrow clones
Tue, 19 Jul 2022 17:07:09 +0200 rust: add support for hints in error messages
Raphaël Gomès <rgomes@octobus.net> [Tue, 19 Jul 2022 17:07:09 +0200] rev 49487
rust: add support for hints in error messages This will be used by the narrow support code in the next commit.
Mon, 11 Jul 2022 11:59:13 +0200 rust: add Debug constraint to Matcher trait
Raphaël Gomès <rgomes@octobus.net> [Mon, 11 Jul 2022 11:59:13 +0200] rev 49486
rust: add Debug constraint to Matcher trait This makes sure we can easily debug which Matcher we're looking at when using trait objects, and is just generally useful. Effort to make the debugging output nicer has been kept to a minimum, please feel free to improve.
Tue, 19 Jul 2022 15:37:45 +0200 rhg: add sparse support
Raphaël Gomès <rgomes@octobus.net> [Tue, 19 Jul 2022 15:37:45 +0200] rev 49485
rhg: add sparse support
Tue, 19 Jul 2022 15:37:09 +0200 rhg: add debugrhgsparse command to help figure out bugs in rhg
Raphaël Gomès <rgomes@octobus.net> [Tue, 19 Jul 2022 15:37:09 +0200] rev 49484
rhg: add debugrhgsparse command to help figure out bugs in rhg
Tue, 26 Jul 2022 17:33:34 +0200 rhg-status: extract a function for printing pattern file warnings
Raphaël Gomès <rgomes@octobus.net> [Tue, 26 Jul 2022 17:33:34 +0200] rev 49483
rhg-status: extract a function for printing pattern file warnings This will be reused for the warnings produced by the sparse file parsing functions.
Mon, 18 Jul 2022 17:25:49 +0200 rust-filepatterns: allow overriding default syntax
Raphaël Gomès <rgomes@octobus.net> [Mon, 18 Jul 2022 17:25:49 +0200] rev 49482
rust-filepatterns: allow overriding default syntax This will be used when parsing pattern files other than .hgignore like the sparse spec.
Tue, 12 Jul 2022 10:15:52 +0200 rhg: don't fallback if `strip` or `rebase` are activated
Raphaël Gomès <rgomes@octobus.net> [Tue, 12 Jul 2022 10:15:52 +0200] rev 49481
rhg: don't fallback if `strip` or `rebase` are activated Neither of these extensions do anything other than add commands, so ignoring them opens up more of the test suite to rhg.
Mon, 11 Jul 2022 17:44:03 +0200 rhg: fallback in `debugdata` if repo has `narrow`
Raphaël Gomès <rgomes@octobus.net> [Mon, 11 Jul 2022 17:44:03 +0200] rev 49480
rhg: fallback in `debugdata` if repo has `narrow` Narrow uses ellipsis nodes and debugdata does not understand them yet.
Wed, 06 Jul 2022 11:46:00 +0200 rust-status: expose DifferenceMatcher from Rust to Python
Raphaël Gomès <rgomes@octobus.net> [Wed, 06 Jul 2022 11:46:00 +0200] rev 49479
rust-status: expose DifferenceMatcher from Rust to Python
Wed, 06 Jul 2022 11:44:20 +0200 rust-matchers: implement DifferenceMatcher
Raphaël Gomès <rgomes@octobus.net> [Wed, 06 Jul 2022 11:44:20 +0200] rev 49478
rust-matchers: implement DifferenceMatcher This can be generated by the sparse matcher.
Mon, 11 Jul 2022 17:27:39 +0200 rhg: support "!" syntax for disabling extensions
Raphaël Gomès <rgomes@octobus.net> [Mon, 11 Jul 2022 17:27:39 +0200] rev 49477
rhg: support "!" syntax for disabling extensions This makes it so that calls in test-log.t do not fall back immediately because of the disabled extension, instead going through the CLI parsing code, which breaks because of invalid UTF-8 in a flag. I *think* clap 3.x+ supports this? I'm not sure, and we have to upgrade the minimum Rust version to use clap 3.x anyway which is out of scope for this series, so let's just kick that can down the road a little bit.
Fri, 20 May 2022 11:02:52 +0100 revlog: finer computation of "issnapshot"
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 20 May 2022 11:02:52 +0100] rev 49476
revlog: finer computation of "issnapshot" If the parent had an empty diff, we skip of it to compute a diff against the parent base. This create shorter and simpler chain. However these case could be wrongly detected as snapshot. So we improve the code doing this detection. In practice nobody care as when tried on a copy of mozilla-try and we got the same number of snapshot (1315) in both case. Performance where equivalent.
Thu, 01 Sep 2022 16:41:48 +0200 relnotes: add 6.2.1 and 6.2.2 stable
Raphaël Gomès <rgomes@octobus.net> [Thu, 01 Sep 2022 16:41:48 +0200] rev 49475
relnotes: add 6.2.1 and 6.2.2
Fri, 26 Aug 2022 00:50:31 +0200 perf: make perf::bundle compatible down to 5.2
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 26 Aug 2022 00:50:31 +0200] rev 49474
perf: make perf::bundle compatible down to 5.2 A another small change to make it compatible with a wider set of revision. I did not check compatibility in the python-2 territory yet.
Fri, 26 Aug 2022 00:48:54 +0200 perf: make perf::bundle compatible before 61ba04693d65
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 26 Aug 2022 00:48:54 +0200] rev 49473
perf: make perf::bundle compatible before 61ba04693d65 A small change to make it compatible with a wider set of revision.
Thu, 01 Sep 2022 16:51:26 +0200 branching: merge stable into default
Raphaël Gomès <rgomes@octobus.net> [Thu, 01 Sep 2022 16:51:26 +0200] rev 49472
branching: merge stable into default
Thu, 01 Sep 2022 16:44:00 +0200 Added signature for changeset b5c8524827d2 stable
Raphaël Gomès <rgomes@octobus.net> [Thu, 01 Sep 2022 16:44:00 +0200] rev 49471
Added signature for changeset b5c8524827d2
Thu, 01 Sep 2022 16:43:36 +0200 Added tag 6.2.2 for changeset b5c8524827d2 stable
Raphaël Gomès <rgomes@octobus.net> [Thu, 01 Sep 2022 16:43:36 +0200] rev 49470
Added tag 6.2.2 for changeset b5c8524827d2
Thu, 01 Sep 2022 15:49:14 +0200 dirstate-v2: no longer register the data-file during transaction stable 6.2.2
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 01 Sep 2022 15:49:14 +0200] rev 49469
dirstate-v2: no longer register the data-file during transaction If the data file change during the transaction, we cannot truncate it. The content of the file itself is fine as it will get backed up at the same time as the docket. Leaving the trailing data at the end of failed transaction is fine. The dirstate-v2 format supports it. The dead data will simply we written over if necessary.
Tue, 30 Aug 2022 17:05:19 +0200 fsmonitor: use new dirstate APIs (issue6728) stable
Raphaël Gomès <rgomes@octobus.net> [Tue, 30 Aug 2022 17:05:19 +0200] rev 49468
fsmonitor: use new dirstate APIs (issue6728) On top of fixing fsmonitor, it moves one more "old API" use to the new one. This needs very verbose code to save a few function calls that are very expensive in Python.
Wed, 31 Aug 2022 06:37:42 +0200 dirstate-v2: backup the data file during the transaction (issue6730) stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 31 Aug 2022 06:37:42 +0200] rev 49467
dirstate-v2: backup the data file during the transaction (issue6730) If we backup of the docket, without doing a backup of the data file, we highly risk restoring a docket pointing to a missing file in the future. So we now backup the data-file alongside the docket.
Wed, 31 Aug 2022 05:48:32 +0200 dirstate-v2: display a possible issue with transaction stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 31 Aug 2022 05:48:32 +0200] rev 49466
dirstate-v2: display a possible issue with transaction If we backup the dirstate without the data file, we can end up in an inconsistent state of the transaction is rolled back.
Wed, 31 Aug 2022 05:36:53 +0200 test-dirstate: do not get out of the test directory stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 31 Aug 2022 05:36:53 +0200] rev 49465
test-dirstate: do not get out of the test directory It looks like we were doing one `cd ..` too many.
(0) -30000 -10000 -3000 -1000 -300 -100 -50 -30 +30 +50 +100 +300 +1000 tip