Mercurial > hg
changeset 46732:60fe9ebae29b
rhg: Sort config files when adding a directory
For example in `/etc/mercurial/hgrc.d/` or with `HGRCPATH=some-directory`.
Previously files where parsed in the order returned by the filesystem,
which is undefined. But order is significant when multiple files
define the same configuration key: the "last" one wins.
Differential Revision: https://phab.mercurial-scm.org/D10111
author | Simon Sapin <simon.sapin@octobus.net> |
---|---|
date | Wed, 03 Mar 2021 20:02:07 +0100 |
parents | 3d692e724d06 |
children | 1bac7764ceef |
files | rust/hg-core/src/config/config.rs |
diffstat | 1 files changed, 7 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/rust/hg-core/src/config/config.rs Wed Mar 03 19:47:48 2021 +0100 +++ b/rust/hg-core/src/config/config.rs Wed Mar 03 20:02:07 2021 +0100 @@ -125,8 +125,13 @@ .when_reading_file(path) .io_not_found_as_none()? { - for entry in entries { - let file_path = entry.when_reading_file(path)?.path(); + let mut file_paths = entries + .map(|result| { + result.when_reading_file(path).map(|entry| entry.path()) + }) + .collect::<Result<Vec<_>, _>>()?; + file_paths.sort(); + for file_path in &file_paths { if file_path.extension() == Some(std::ffi::OsStr::new("rc")) { self.add_trusted_file(&file_path)? }