- Feb 21, 2025
-
-
Mitchell Kember authored
This means that lints configured in rust/Cargo.toml will apply to all crates within the workspace. Currently there are none but I plan to add some.
-
- Nov 04, 2024
-
-
Raphaël Gomès authored
It is fully replaced with the now stable `std::io::IsTerminal` trait. This was the last dependency flagged as a warning by `cargo audit`, aside from `cpython` which we know about all too well: the plan is to transition to PyO3 soon-ish.
-
Raphaël Gomès authored
Aside from being more up-to-date in general, this makes its own dependency on the unmaintained and now useless `atty` disappear.
-
Raphaël Gomès authored
This brings in more up-to-date dependencies, some bug fixes (none of which are relevant yet), and slightly improved compile times.
-
- Aug 01, 2024
-
-
Arseniy Alekseyev authored
The error is already ignored when the .hg directory is read-only, so this is only fair. (the python hg is silent on readonly fs, too)
-
Raphaël Gomès authored
This was reported by a user, and was a TODO long overdue.
-
- Jun 13, 2023
-
-
Raphaël Gomès authored
`users` is unmaintained, with the maintainer apparently MIA. `whoami` is a popular crate that does simple wrapping of platform-specific calls. This makes the overhead from using `blackbox` lower. It used to be up 10ms on slower hardware for both calls, now down to <1ms which is always good.
-
- Mar 06, 2023
-
-
Raphaël Gomès authored
This includes a potential soundness fix as well as some improvements to performance which should be helpful.
-
- Feb 22, 2023
-
-
Pierre-Yves David authored
This show that the recent changes on default fixed the issue with transaction overwriting content in `test-transaction-wc-rollback-race.t`
-
- Jan 06, 2023
-
-
Raphaël Gomès authored
I am the author of `micro_timer`. I built it at the time because I couldn't find a crate that was simple to use and flexible to do function timing with. Turns out I just couldn't find it because crates.io's search isn't all that great, or maybe I didn't look hard enough. `logging_timer` is better in every way: - supports changing the logging level - supports start and end logging - supports intermediary messages - supports inline macros - supports formatting the output - better IDE/tree-sitter integration thanks to a more robust proc macro I also changed all uses to one-liners, so it's easier to copy-paste.
-
- Nov 15, 2022
-
-
Raphaël Gomès authored
These are painless, so they are all grouped in this changeset.
-
- Nov 14, 2022
-
-
Raphaël Gomès authored
This one is the worst one to upgrade since v2 -> v4 broke a ton of API, which thankfully seems saner now. Contrary to what was done in the `hg-core/src/examples/nodemap` rewrite, we're not switching from the "builder" pattern to the "derive" pattern, since that would imply a much larger diff. It can be done incrementally.
-
Raphaël Gomès authored
We've changed our minimum Rust version to 1.61.0 in the previous patch, and edition 2021 predates that version.
-
- Oct 05, 2022
-
-
Arseniy Alekseyev authored
[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 ```
-
- May 04, 2022
-
-
Raphaël Gomès authored
-
- Apr 19, 2022
-
-
Raphaël Gomès authored
`rhg` is supposed to be a transparent executable, using a subprocess defeats that purpose. See inline comments for more details. This also introduces the `which` crate to check if the fallback executable actually exists to help debugging (plain `execve` doesn't give much information). The error code 253 is used to signify that the fallback is not found, but may mean in the future that it is otherwise invalid if we start being more specific. Differential Revision: https://phab.mercurial-scm.org/D12578
-
- Mar 09, 2022
-
-
Raphaël Gomès authored
This upgrades all dependencies to their latest version, except `clap`, which is upgraded to the last 2.x series version, since 3.x does not support our minimum supported Rust version of 1.48.0. This contains a security fix for `regex` which does not affect us too much, but doesn't hurt, and the rest of the upgrades are there simply to keep up. Differential Revision: https://phab.mercurial-scm.org/D12357
-
- Feb 10, 2022
-
-
Simon Sapin authored
The same "label" system is used as in Python code Differential Revision: https://phab.mercurial-scm.org/D12167
-
- Dec 17, 2021
-
-
Simon Sapin authored
This removes use of the proc-macro-hack crate, which is possible now that we don’t support Rust 1.41 to 1.44 anymore. This in turn fixes spurious errors reported by rust-analyser: https://github.com/rust-analyzer/rust-analyzer/issues/9606#issuecomment-919240134 Differential Revision: https://phab.mercurial-scm.org/D11938
-
- Apr 10, 2021
-
-
Pulkit Goyal authored
hg parses `-R` and `--repository` CLI arguments "early" in order to know which local repository to load config from. (Config can then affect whether or how to fall back.) The value of of those arguments can be not only a filesystem path, but also an alias configured in the `[paths]` section. This part was missing in rhg and this patch implements that. The current patch still lacks functionality to read config of current repository if we are not at root of repo. That will be fixed in upcoming patches. A new crate `home` is added to get path of home directory. Differential Revision: https://phab.mercurial-scm.org/D10296
-
- Mar 04, 2021
-
-
Simon Sapin authored
Extensions might affect behavior in ways we can’t anticipate, so just ignoring them is not correct. Later we’ll add opt-in configuration to ignore specific extensions. Differential Revision: https://phab.mercurial-scm.org/D10112
-
- Mar 03, 2021
-
-
Simon Sapin authored
A low-hanging fruit to improve on this would be to properly parse and handle `file:` URLs. But other Python-based hg supports some other URL schemes for features that rhg does not support yet. Differential Revision: https://phab.mercurial-scm.org/D10101
-
- Feb 16, 2021
-
-
Simon Sapin authored
Only `command` and `commandfinish` events are logged. The `dirty`, `logsource`, `track` and `ignore` configuration items are not supported yet. To indicate commands executed without Python, a `(rust) ` prefix is added in corresponding log messages. Differential Revision: https://phab.mercurial-scm.org/D10012
-
- Feb 08, 2021
-
-
Simon Sapin authored
This is similar to `std::fmt::Display`, but for arbitrary bytes instead of Unicode. Writing to an abstract output stream helps avoid allocating intermediate `Vec<u8>` buffers. Differential Revision: https://phab.mercurial-scm.org/D9966
-
- Jan 26, 2021
-
-
Simon Sapin authored
Crate docs: https://jeltef.github.io/derive_more/derive_more/from.html Differential Revision: https://phab.mercurial-scm.org/D9875
-
- Nov 26, 2020
-
-
Raphaël Gomès authored
This change also includes a formatting changing with the new `rustfmt` version, but I'm expecting it to have already been applied in another patch by the time this lands. Differential Revision: https://phab.mercurial-scm.org/D9407
-
- Sep 23, 2020
-
-
Antoine Cezar authored
Differential Revision: https://phab.mercurial-scm.org/D8962
-
- Jul 07, 2020
-
-
Antoine Cezar authored
Clap has been choosen for argument parsing for the following reasons: - it's a wildly used and maintained crate - it can deal with OS encoding making it suitable for any encoding - it supports nonambiguous prefix matching as already available in hg - it will soon allow for structopts-style declarative pattern instead of the currently used builder pattern Differential Revision: https://phab.mercurial-scm.org/D8613
-
- Jun 05, 2020
-
-
Antoine Cezar authored
The println macro is not used to avoid string usage. Dealing only with bytes allows us to be compatible with any encoding and not just UTF8. Later on, format macro will be made to have more readable code. Differential Revision: https://phab.mercurial-scm.org/D8612
-
Antoine Cezar authored
The goal of rhg is to speedup some of hg's commands when possible by bypassing python entirely for the time being. It is by no means a replacement for hg as it will not support extentions or configuration and implement only a subset of hg's commands and options. Only use rhg if you understand what the tradeoffs are. Differential Revision: https://phab.mercurial-scm.org/D8610
-