##// END OF EJS Templates
rust-revlog: fix incorrect results with NULL_NODE prefixes...
rust-revlog: fix incorrect results with NULL_NODE prefixes In case a short hash is a prefix of `NULL_NODE`, the correct revision number lookup is `NULL_REVISION` only if there is no match in the nodemap. Indeed, if there is a single nodemap match, then it is an ambiguity with the always matching `NULL_NODE`. Before this change, using the Mercurial development repository as a testbed (it has public changesets with node ID starting with `0005` and `0009`), this is what `rhg` did (plain `hg` provided for reference) ``` $ rust/target/debug/rhg cat -r 000 README README: no such file in rev 000000000000 $ hg cat -r 000 README abort: ambiguous revision identifier: 000 ``` Here is the expected output for `rhg` on ambiguous prefixes (again, before this change): ``` $ rust/target/debug/rhg cat -r 0001 README abort: ambiguous revision identifier: 0001 ``` The test provided by 8c29af0f6d6e in `test-rhg.t` could become flaky with this change, unless all hashes are fixed. We expect reviewers to be more sure about that than we are.

File last commit:

r51576:d39ac346 default
r51637:bca40373 stable
Show More
Cargo.toml
25 lines | 514 B | text/plain | TOMLLexer
[package]
name = "rhg"
version = "0.1.0"
authors = [
"Antoine Cezar <antoine.cezar@octobus.net>",
"Raphaël Gomès <raphael.gomes@octobus.net>",
]
edition = "2021"
[dependencies]
atty = "0.2.14"
hg-core = { path = "../hg-core"}
chrono = "0.4.23"
clap = { version = "4.0.24", features = ["cargo"] }
derive_more = "0.99.17"
home = "0.5.4"
lazy_static = "1.4.0"
log = "0.4.17"
logging_timer = "1.1.0"
regex = "1.7.0"
env_logger = "0.9.3"
format-bytes = "0.3.0"
whoami = "1.4"
which = "4.3.0"
rayon = "1.7.0"