Mercurial > public > mercurial-scm > hg-stable
diff rust/hg-core/src/operations/mod.rs @ 52781:6183949219b2
rhg: implement rhg annotate
This initial implementation produces the same output as Python for all the files
I've tried, and is usually 1.5-9x faster. The algorithm is mostly the same, but
one key difference is that the Rust implementation only converts filelog
revisions to changelog revisions if they will actually appear in the output.
This does not support all the command line flags yet. In particular, --template,
--include, --exclude, --skip, and whitespace-related flags will cause fallback
to Python. Also, --rev 'wdir()' (often used by editor plugins) is not supported.
There is also no pager.
author | Mitchell Kember <mkember@janestreet.com> |
---|---|
date | Fri, 24 Jan 2025 12:01:12 -0500 |
parents | bde718849153 |
children |
line wrap: on
line diff
--- a/rust/hg-core/src/operations/mod.rs Fri Jan 24 13:07:15 2025 -0500 +++ b/rust/hg-core/src/operations/mod.rs Fri Jan 24 12:01:12 2025 -0500 @@ -2,10 +2,14 @@ //! An operation is what can be done whereas a command is what is exposed by //! the cli. A single command can use several operations to achieve its goal. +mod annotate; mod cat; mod debugdata; mod list_tracked_files; mod status_rev_rev; +pub use annotate::{ + annotate, AnnotateOptions, AnnotateOutput, ChangesetAnnotation, +}; pub use cat::{cat, CatOutput}; pub use debugdata::debug_data; pub use list_tracked_files::{