Tue, 12 May 2020 11:37:55 +0200 rust-hg-cpython: update status bridge with the new `traversedir` support
Raphaël Gomès <rgomes@octobus.net> [Tue, 12 May 2020 11:37:55 +0200] rev 44839
rust-hg-cpython: update status bridge with the new `traversedir` support Differential Revision: https://phab.mercurial-scm.org/D8519
Tue, 12 May 2020 11:36:52 +0200 rust-status: collect traversed directories if required
Raphaël Gomès <rgomes@octobus.net> [Tue, 12 May 2020 11:36:52 +0200] rev 44838
rust-status: collect traversed directories if required Some commands (`hg purge` notably) register the `traversedir` callback on their matcher to run said callback every time a directory is traversed. This is the first of three patches, further broadening Rust support for status. Unfortunately, there is no way around collecting a full `Vec` (or any other owned datastructure, like a radix tree) and pushing it back up the Python layer since keeping the Python callback in a closure would mean giving up multithreading because of the GIL, which is obviously unacceptable. Performance is still a lot better than the Python+C path. Running `hg clean/purge` on Netbeans' repo (100k files): ``` | No-op | 30% unknown -------------------------- Rust | 1.0s | 1.67s C | 2.0s | 2.87s ``` Differential Revision: https://phab.mercurial-scm.org/D8518
Tue, 12 May 2020 12:41:28 +0200 rust-status: don't dispatch unknown file when traversing if not listing unknowns
Raphaël Gomès <rgomes@octobus.net> [Tue, 12 May 2020 12:41:28 +0200] rev 44837
rust-status: don't dispatch unknown file when traversing if not listing unknowns This usually isn't a (functional) problem since we ignore the unknown files anyway, but when specifically using `hg purge`, unknown files were iterated over regardless of the option being true. This is both more correct and more efficient. Differential Revision: https://phab.mercurial-scm.org/D8517
Tue, 12 May 2020 10:03:51 +0200 status: update comment to reflect the more recent situation
Raphaël Gomès <rgomes@octobus.net> [Tue, 12 May 2020 10:03:51 +0200] rev 44836
status: update comment to reflect the more recent situation This is a gratuitous cleanup. Differential Revision: https://phab.mercurial-scm.org/D8516
Fri, 01 May 2020 01:32:08 +0200 hooks: provide access to transaction changes for internal hooks
Joerg Sonnenberger <joerg@bec.de> [Fri, 01 May 2020 01:32:08 +0200] rev 44835
hooks: provide access to transaction changes for internal hooks External hooks are skipped here as the environment often has a size limit in the low MBs and that can easily be reached by larger transactions. Differential Revision: https://phab.mercurial-scm.org/D8490
Thu, 07 May 2020 23:54:37 +0200 rust-regex: add test for verbatim regex syntax
Raphaël Gomès <rgomes@octobus.net> [Thu, 07 May 2020 23:54:37 +0200] rev 44834
rust-regex: add test for verbatim regex syntax This makes sure it's not modified. Differential Revision: https://phab.mercurial-scm.org/D8508
Thu, 07 May 2020 23:53:12 +0200 rust-regex: prevent nonsensical `.*.*` pattern from happening
Raphaël Gomès <rgomes@octobus.net> [Thu, 07 May 2020 23:53:12 +0200] rev 44833
rust-regex: prevent nonsensical `.*.*` pattern from happening Differential Revision: https://phab.mercurial-scm.org/D8507
Thu, 07 May 2020 23:52:08 +0200 rust-regex: fix issues with regex anchoring and performance
Raphaël Gomès <rgomes@octobus.net> [Thu, 07 May 2020 23:52:08 +0200] rev 44832
rust-regex: fix issues with regex anchoring and performance It turns out that the way I tried to work around `regex`'s behavior difference with `re2` and Python's `re` was 1) buggy and 2) much more complicated than needed. In a few words: `regex` adds `.*` on either side of patterns when no start or end anchor is present. My previous workaround put `^` or `$` for every pattern, which is wrong even without the other 2 bugs on top of it. Using `^(?:<patterns>)` right at the end of the `regex` path fixes the issue. I've opened an issue to get a build option instead: https://github.com/rust-lang/regex/issues/675 Differential Revision: https://phab.mercurial-scm.org/D8506
Thu, 07 May 2020 16:56:03 -0400 diff: avoid going from contexts to nodes and back
Augie Fackler <augie@google.com> [Thu, 07 May 2020 16:56:03 -0400] rev 44831
diff: avoid going from contexts to nodes and back This will allow us to pass in-memory contexts that may not have a valid node to the diffing logic. Differential Revision: https://phab.mercurial-scm.org/D8503
Fri, 15 May 2020 00:53:37 +0200 setup: raise minimum Python version to 2.7.4 stable
Manuel Jacob <me@manueljacob.de> [Fri, 15 May 2020 00:53:37 +0200] rev 44830
setup: raise minimum Python version to 2.7.4 On older Python versions, Mercurial is not really usable because of https://bugs.python.org/issue10211. Recently someone reported a crash on the mailing list when running Mercurial on Python 2.7.3. There was consensus that fixing compatibility for a Python version more than 7 years old is not worth it. So, instead of making Mercurial crash with an obscure exception, this patch raises the minimum Python version to 2.7.4.
(0) -30000 -10000 -3000 -1000 -300 -100 -10 +10 +100 +300 +1000 +3000 tip