##// END OF EJS Templates
upgrade: no longer keep all revlogs in memory at any point...
upgrade: no longer keep all revlogs in memory at any point Keeping all object open is unsustainable, so we will open them on demand. This mean opening them multiple times, but this is a lesser evil. Each revlog consume a small amount of memory (index content, associated nodemap, etc). While there are few "big" revlog, the sheer amount of small filelog can become a significant issue memory wise, consuming multiple GB of memory. If you combines this extra usage with the use of multiprocessing, this usage can quickly get out of control. This can effectively block the upgrade of larger repository. This changeset fixes this issue.

File last commit:

r50415:eb02decd default
r50447:19948429 stable
Show More
Cargo.toml
51 lines | 1.2 KiB | application/toml | TOMLLexer
[package]
name = "hg-core"
version = "0.1.0"
authors = ["Georges Racinet <gracinet@anybox.fr>"]
description = "Mercurial pure Rust core library, with no assumption on Python bindings (FFI)"
edition = "2018"
[lib]
name = "hg"
[dependencies]
bitflags = "1.3.2"
bytes-cast = "0.2.0"
byteorder = "1.4.3"
derive_more = "0.99.17"
hashbrown = { version = "0.9.1", features = ["rayon"] }
home = "0.5.3"
im-rc = "15.0"
itertools = "0.10.3"
lazy_static = "1.4.0"
libc = "0.2"
ouroboros = "0.15.0"
rand = "0.8.4"
rand_pcg = "0.3.1"
rand_distr = "0.4.3"
rayon = "1.5.1"
regex = "1.5.5"
sha-1 = "0.10.0"
twox-hash = "1.6.2"
same-file = "1.0.6"
tempfile = "3.1.0"
crossbeam-channel = "0.5.0"
micro-timer = "0.4.0"
log = "0.4.8"
memmap2 = { version = "0.5.3", features = ["stable_deref_trait"] }
zstd = "0.5.3"
format-bytes = "0.3.0"
# once_cell 1.15 uses edition 2021, while the heptapod CI
# uses an old version of Cargo that doesn't support it.
once_cell = "=1.14.0"
# We don't use the `miniz-oxide` backend to not change rhg benchmarks and until
# we have a clearer view of which backend is the fastest.
[dependencies.flate2]
version = "1.0.22"
features = ["zlib"]
default-features = false
[dev-dependencies]
clap = "2.34.0"
pretty_assertions = "1.1.0"