##// END OF EJS Templates
dispatch: change cwd when loading local config...
dispatch: change cwd when loading local config Previously, the `_getlocal` function would not correctly load the repo config when given a relative `rpath` and an alternate cwd via the `wd` parameter. Normally when `--cwd` is specified, hg changes to the given directory before attempting to load the local config (and therefore does not specify a `wd`). The only time the function is called with `wd` set is when hg is running as a command server (e.g., with chg), in which case each forked worker process will attempt to configure itself via `_getlocal` before responding to the client. When given a relative repo path, the worker fails to load the repo config, detects a config mismatch with the client, and enters a redirect/respawn loop. To fix this, we can simply change to the desired working directory during config loading. (Note that simply concatenating `wd` and `rpath` won't work in all cases. The repo path could be something more complicated than a simple relative path, such as a `union:` repo.)

File last commit:

r50312:1bad05cf stable
r50317:3681a476 default
Show More
Cargo.toml
48 lines | 1.1 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.4"
micro-timer = "0.3.0"
log = "0.4.8"
memmap2 = {version = "0.4", features = ["stable_deref_trait"]}
zstd = "0.5.3"
format-bytes = "0.3.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"