Fri, 29 Nov 2019 17:24:40 +0100 rust-hg-path: add method to get part of a path relative to a prefix
Raphaël Gomès <rgomes@octobus.net> [Fri, 29 Nov 2019 17:24:40 +0100] rev 43833
rust-hg-path: add method to get part of a path relative to a prefix This will be used in the next patch in this series. Differential Revision: https://phab.mercurial-scm.org/D7526
Fri, 29 Nov 2019 18:33:56 +0100 rust-matchers: improve `Matcher` trait ergonomics
Raphaël Gomès <rgomes@octobus.net> [Fri, 29 Nov 2019 18:33:56 +0100] rev 43832
rust-matchers: improve `Matcher` trait ergonomics `VisitChildrenSet` has no need to own the set, this will save allocations. The `file_set` return type change is motivated by both ergonomics and... being able to compile code. The `AlwaysMatcher` does not store a `file_set`, which requires it to return an owned `HashSet`, which in turn would change our return type to `Cow<&HgPath>` (lifetimes omitted). This is both un-ergonomic and troublesome for more complex lifetime issues (especially with the upcoming `FileMatcher` in the following patch). Differential Revision: https://phab.mercurial-scm.org/D7525
Fri, 29 Nov 2019 17:19:34 +0100 rust-dirs-multiset: use `AsRef` instead of concrete types when possible
Raphaël Gomès <rgomes@octobus.net> [Fri, 29 Nov 2019 17:19:34 +0100] rev 43831
rust-dirs-multiset: use `AsRef` instead of concrete types when possible I also renamed `vec` to `dirstate`, because it was not a great name. Differential Revision: https://phab.mercurial-scm.org/D7524
Thu, 21 Nov 2019 16:48:34 +0100 logcmdutil: call _exthook() in changesettemplater
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 21 Nov 2019 16:48:34 +0100] rev 43830
logcmdutil: call _exthook() in changesettemplater Class changesetprinter has an _exthook() method that is called in _show() before the patch is displayed. Call the method as well in changesettemplater._show(). Differential Revision: https://phab.mercurial-scm.org/D7505
Thu, 21 Nov 2019 18:10:12 +0100 phabricator: fix processing of tags/desc in getoldnodedrevmap()
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 21 Nov 2019 18:10:12 +0100] rev 43829
phabricator: fix processing of tags/desc in getoldnodedrevmap() It seems that the previous logic was wrong (it essentially comes from changeset 3ab0d5767b54 where the result got accumulated instead of early returned). First of all, the "continue" in first "if m:" is useless because we're at the end of the loop. Then, the algorithm seems weird because we will process all predecessors of a node and possibly override `toconfirm[node]` for each of these having a tag (maybe this doesn't happen, but still). Finally, we would also override `toconfirm[node]` when the "Differential Revision: " is found in changeset description. Maybe this is not a big deal when there is no mix of local tag and changeset description update? The logic is changed so that the loop on predecessors stops upon first match of a tag and so that the changeset description is only checked if no tag was found. Therefore, `toconfirm[node]` is only set once. Differential Revision: https://phab.mercurial-scm.org/D7513
Tue, 10 Dec 2019 10:31:18 -0500 tests: replace [[]] bashism with portable [] invocation
Augie Fackler <augie@google.com> [Tue, 10 Dec 2019 10:31:18 -0500] rev 43828
tests: replace [[]] bashism with portable [] invocation In this case nothing fancy is required. Differential Revision: https://phab.mercurial-scm.org/D7596
Fri, 29 Nov 2019 17:15:24 +0100 rust-hg-path: implement `Display` for `HgPath` and `HgPathBuf`
Raphaël Gomès <rgomes@octobus.net> [Fri, 29 Nov 2019 17:15:24 +0100] rev 43827
rust-hg-path: implement `Display` for `HgPath` and `HgPathBuf` This is useful when debugging, to get a human readable output instead of an array of `u8`. Differential Revision: https://phab.mercurial-scm.org/D7523
Mon, 14 Oct 2019 13:57:30 +0200 rust-performance: introduce FastHashMap type alias for HashMap
Raphaël Gomès <rgomes@octobus.net> [Mon, 14 Oct 2019 13:57:30 +0200] rev 43826
rust-performance: introduce FastHashMap type alias for HashMap Rust's default hashing is slow, because it is meant for preventing collision attacks. For all of the current Rust code, we don't care about those attacks, because if an person with bad intentions has write access to your repo, you have other issues. I've chosen to use the TwoXHash crate because it was made by a reputable member of the Rust community and has very good benchmarks. For now it does not seem to improve performance by much for the current code, but it's something else to not worry about when benchmarking code: in a previous experiment with copytracing in Rust, it accounted for more than 10% of the time of the entire script. Differential Revision: https://phab.mercurial-scm.org/D7116
Mon, 02 Dec 2019 14:44:26 +0100 mail: use procutil.shellsplit instead of bytes.split to parse command
Julien Cristau <jcristau@debian.org> [Mon, 02 Dec 2019 14:44:26 +0100] rev 43825
mail: use procutil.shellsplit instead of bytes.split to parse command Differential Revision: https://phab.mercurial-scm.org/D7541
Thu, 05 Dec 2019 16:18:44 -0500 annotate: describe --skip as taking a revset
Augie Fackler <augie@google.com> [Thu, 05 Dec 2019 16:18:44 -0500] rev 43824
annotate: describe --skip as taking a revset It's obvious to me, but probably wouldn't be obvious to a novice user. Differential Revision: https://phab.mercurial-scm.org/D7557
(0) -30000 -10000 -3000 -1000 -300 -100 -10 +10 +100 +300 +1000 +3000 tip