Wed, 19 Oct 2022 16:14:50 -0400 shelve: avoid setting overloading tmpwctx
Jason R. Coombs <jaraco@jaraco.com> [Wed, 19 Oct 2022 16:14:50 -0400] rev 49522
shelve: avoid setting overloading tmpwctx
Tue, 18 Oct 2022 19:49:31 -0400 configitems: change the `verify.skipflags` default value to avoid a py3 crash stable
Matt Harbison <matt_harbison@yahoo.com> [Tue, 18 Oct 2022 19:49:31 -0400] rev 49521
configitems: change the `verify.skipflags` default value to avoid a py3 crash The revlog and LFS modules use various `&` and `&=` operations with this value, which no longer treats `None` as 0. Since nothing cares if it was actually set in the config or not, just default to 0 for simplicity.
Mon, 10 Oct 2022 14:48:39 +0100 dirstate-v2: skip evaluation of hgignore regex on cached directories
Arseniy Alekseyev <aalekseyev@janestreet.com> [Mon, 10 Oct 2022 14:48:39 +0100] rev 49520
dirstate-v2: skip evaluation of hgignore regex on cached directories By making the computation of [has_ignored_ancestor] lazy we're eliding its computation in the common case when none of its descendants have changed on disk. On a ~400k files repo, with a cached status, we saw a ~64% reduction in CPU time, resulting in a speedup of ~10-15% (on ZFS), and a speedup of ~38% of XFS (XFS has faster stat operations for some reason).
Fri, 30 Sep 2022 09:05:48 -0600 releasenotes: use re.MULTILINE mode when checking admonitions
Craig Ozancin <c.ozancin@gmail.com> [Fri, 30 Sep 2022 09:05:48 -0600] rev 49519
releasenotes: use re.MULTILINE mode when checking admonitions Release note admonitions must start at the beginning of a line within the changeset description: .. admonitions:: The checkadmonitions function search for and validates admonitions. Unfortunately, since the ctx.description is multi-line, the regex search always fails unless the admonition is on the first line. This changeset adds re.MULTILINE to the re.compile to make the re opbject multi-line.
Mon, 10 Oct 2022 11:28:19 -0400 windows: gracefully handle when the username cannot be determined stable
Matt Harbison <matt_harbison@yahoo.com> [Mon, 10 Oct 2022 11:28:19 -0400] rev 49518
windows: gracefully handle when the username cannot be determined This assumes implementation details, but I don't see any other way than to check the environment variables ourselves (which would miss out on any future enhancements that Python may make). This was originally reported as https://foss.heptapod.net/mercurial/tortoisehg/thg/-/issues/5835.
Wed, 05 Oct 2022 15:45:05 -0400 rhg: parallellize computation of [unsure_is_modified]
Arseniy Alekseyev <aalekseyev@janestreet.com> [Wed, 05 Oct 2022 15:45:05 -0400] rev 49517
rhg: parallellize computation of [unsure_is_modified] [unsure_is_modified] is called for every file for which we can't determine its status based on its size and mtime alone. In particular, this happens if the mtime of the file changes without its contents changing. Parallellizing this improves performance significantly when we have many of these files. Here's an example run (on a repo with ~400k files after dropping FS caches) ``` before: real 0m53.901s user 0m27.806s sys 0m31.325s after: real 0m32.017s user 0m34.277s sys 1m26.250s ``` Another example run (a different FS): ``` before: real 3m28.479s user 0m31.800s sys 0m25.324s after: real 0m29.751s user 0m41.814s sys 1m15.387s ```
Wed, 21 Sep 2022 10:14:29 -0400 rhg: enable in case ui.statuscopies=True
Arseniy Alekseyev <aalekseyev@janestreet.com> [Wed, 21 Sep 2022 10:14:29 -0400] rev 49516
rhg: enable in case ui.statuscopies=True rhg already has code to support ui.statuscopies, but it's disabled, for seemingly no good reason.
Thu, 22 Sep 2022 18:44:28 -0400 rhg: share some code
Arseniy Alekseyev <aalekseyev@janestreet.com> [Thu, 22 Sep 2022 18:44:28 -0400] rev 49515
rhg: share some code
Tue, 20 Sep 2022 18:28:25 -0400 rhg: support tweakdefaults
Arseniy Alekseyev <aalekseyev@janestreet.com> [Tue, 20 Sep 2022 18:28:25 -0400] rev 49514
rhg: support tweakdefaults
Thu, 22 Sep 2022 17:16:54 -0400 rhg: centralize PlainInfo
Arseniy Alekseyev <aalekseyev@janestreet.com> [Thu, 22 Sep 2022 17:16:54 -0400] rev 49513
rhg: centralize PlainInfo
Tue, 20 Sep 2022 18:16:50 -0400 rhg: central treatment of PLAIN and PLAINEXCEPT
Arseniy Alekseyev <aalekseyev@janestreet.com> [Tue, 20 Sep 2022 18:16:50 -0400] rev 49512
rhg: central treatment of PLAIN and PLAINEXCEPT
Tue, 04 Oct 2022 12:34:50 -0400 revset: handle wdir() in `sort(..., -topo)`
Matt Harbison <matt_harbison@yahoo.com> [Tue, 04 Oct 2022 12:34:50 -0400] rev 49511
revset: handle wdir() in `sort(..., -topo)` The last apparent usage of `repo.changelog.parentrevs` in revsets is in `children()`, but since the sets being operated on never include wdir(), it's never called with `wdirrev` and the wdir() arg on the command line is effectively ignored instead of aborting there. I'm not sure how to fix that. Before (on a clone of hg): $ python3.8 hg perf::revset --config extensions.perf=contrib/perf.py 'sort(all(), -topo)' ! wall 0.123663 comb 0.130000 user 0.130000 sys 0.000000 (best of 76) After: $ python3.8 hg perf::revset --config extensions.perf=contrib/perf.py 'sort(all(), -topo)' ! wall 0.123838 comb 0.130000 user 0.130000 sys 0.000000 (best of 75)
Mon, 03 Oct 2022 17:24:52 -0400 revset: handle wdir() in `roots()`
Matt Harbison <matt_harbison@yahoo.com> [Mon, 03 Oct 2022 17:24:52 -0400] rev 49510
revset: handle wdir() in `roots()` This is already handled in `heads()`, and both are needed to determine if a set is contiguous. I'm guessing the `0 <= p` check was to try to filter out the null revision, but it looks like that comes through in the corner case of a new repo with no commits. But that was already the case, as shown by the tests. Before (on a clone of hg): $ python3.8 hg perf::revset --config extensions.perf=contrib/perf.py 'roots(all())' ! wall 0.059301 comb 0.040000 user 0.040000 sys 0.000000 (best of 100) After: $ python3.8 hg perf::revset --config extensions.perf=contrib/perf.py 'roots(all())' ! wall 0.059387 comb 0.060000 user 0.060000 sys 0.000000 (best of 100)
Tue, 20 Sep 2022 14:04:54 +0200 pull_logger: add basic log file rotation based on size
pacien <pacien.trangirard@pacien.net> [Tue, 20 Sep 2022 14:04:54 +0200] rev 49509
pull_logger: add basic log file rotation based on size
Mon, 25 Jul 2022 22:47:15 +0200 contrib: add pull_logger extension
pacien <pacien.trangirard@pacien.net> [Mon, 25 Jul 2022 22:47:15 +0200] rev 49508
contrib: add pull_logger extension This extension logs the pull parameters, i.e. the remote and common heads, when pulling from the local repository. The collected data should give an idea of the state of a pair of repositories and allow replaying past synchronisations between them. This is particularly useful for working on data exchange, bundling and caching-related optimisations.
Tue, 04 Oct 2022 14:33:31 +0200 shelve: do not add the dirstate backup to the transaction stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 04 Oct 2022 14:33:31 +0200] rev 49507
shelve: do not add the dirstate backup to the transaction Otherwise the transaction will properly clean up its mess on abort… deleting the backup in the process. This break with dirstate-v2 that has more file than just the dirstate. The dirstate itself is full of various exception and is "fine" when using dirstate-v1.
(0) -30000 -10000 -3000 -1000 -300 -100 -16 +16 +100 +300 +1000 tip