##// END OF EJS Templates
rust: add `dirstate_tree` module...
rust: add `dirstate_tree` module Mercurial needs to represent the filesystem hierarchy on which it operates, for example in the dirstate. Its current on-disk representation is an unsorted, flat structure that gets transformed in the current Rust code into a `HashMap`. This loses the hierarchical information of the dirstate, leading to some unfortunate performance and algorithmic compromises. This module adds an implementation of a radix tree that is specialized for representing the dirstate: its unit is the path component. I have made no efforts to optimize either its memory footprint or its insertion speed: they're pretty bad for now. Following will be a few patches that modify the dirstate.status logic to use that new hierarchical information, fixing issue 6335 in the same swing. Differential Revision: https://phab.mercurial-scm.org/D9085

File last commit:

r45223:26ce8e75 merge 5.4rc0 stable
r46136:b51167d7 default
Show More
Cargo.toml
24 lines | 809 B | text/plain | TOMLLexer
[package]
name = "hgcli"
version = "0.1.0"
build = "build.rs"
authors = ["Gregory Szorc <gregory.szorc@gmail.com>"]
edition = "2018"
license = "GPL-2.0"
readme = "README.md"
[[bin]]
name = "hg"
path = "src/main.rs"
[dependencies]
jemallocator-global = { version = "0.3", optional = true }
pyembed = { git = "https://github.com/indygreg/PyOxidizer.git", rev = "c772a1379c3026314eda1c8ea244b86c0658951d", default-features=false }
[features]
default = ["build-mode-pyoxidizer-exe"]
jemalloc = ["jemallocator-global", "pyembed/jemalloc"]
build-mode-pyoxidizer-exe = ["pyembed/build-mode-pyoxidizer-exe"]
build-mode-prebuilt-artifacts = ["pyembed/build-mode-prebuilt-artifacts"]
cpython-link-unresolved-static = ["pyembed/cpython-link-unresolved-static"]
cpython-link-default = ["pyembed/cpython-link-default"]