##// 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:

r46090:2a68a5ec default
r46136:b51167d7 default
Show More
Cargo.toml
31 lines | 752 B | text/plain | TOMLLexer
[package]
name = "hg-cpython"
version = "0.1.0"
authors = ["Georges Racinet <gracinet@anybox.fr>"]
edition = "2018"
[lib]
name='rusthg'
crate-type = ["cdylib"]
[features]
default = ["python27"]
# Features to build an extension module:
python27 = ["cpython/python27-sys", "cpython/extension-module-2-7"]
python3 = ["cpython/python3-sys", "cpython/extension-module"]
# Enable one of these features to build a test executable linked to libpython:
# e.g. cargo test --no-default-features --features python27-bin
python27-bin = ["cpython/python27-sys"]
python3-bin = ["cpython/python3-sys"]
[dependencies]
hg-core = { path = "../hg-core"}
libc = '*'
log = "0.4.8"
env_logger = "0.7.1"
[dependencies.cpython]
version = "0.4.1"
default-features = false