Mercurial > public > mercurial-scm > hg-stable
comparison rust/rhg/src/commands/status.rs @ 50802:f8412da86d05
rust-config: add support for default config items
Now that configitems.toml exists, we can read from it the default values for
all core config items.
We will add the devel-warning for use of undeclared config items in a later
patch when we're done adding the missing entries for `rhg`.
author | Rapha?l Gom?s <rgomes@octobus.net> |
---|---|
date | Thu, 06 Jul 2023 14:32:07 +0200 |
parents | f57f5ab0e220 |
children | c112cc9effdc |
comparison
equal
deleted
inserted
replaced
50801:c51b178b0b7e | 50802:f8412da86d05 |
---|---|
5 // This software may be used and distributed according to the terms of the | 5 // This software may be used and distributed according to the terms of the |
6 // GNU General Public License version 2 or any later version. | 6 // GNU General Public License version 2 or any later version. |
7 | 7 |
8 use crate::error::CommandError; | 8 use crate::error::CommandError; |
9 use crate::ui::{ | 9 use crate::ui::{ |
10 format_pattern_file_warning, print_narrow_sparse_warnings, Ui, | 10 format_pattern_file_warning, print_narrow_sparse_warnings, relative_paths, |
11 RelativePaths, Ui, | |
11 }; | 12 }; |
12 use crate::utils::path_utils::RelativizePaths; | 13 use crate::utils::path_utils::RelativizePaths; |
13 use clap::Arg; | 14 use clap::Arg; |
14 use format_bytes::format_bytes; | 15 use format_bytes::format_bytes; |
15 use hg::config::Config; | 16 use hg::config::Config; |
358 } | 359 } |
359 } | 360 } |
360 } | 361 } |
361 } | 362 } |
362 } | 363 } |
363 let relative_paths = config | 364 |
365 let relative_status = config | |
364 .get_option(b"commands", b"status.relative")? | 366 .get_option(b"commands", b"status.relative")? |
365 .unwrap_or(config.get_bool(b"ui", b"relative-paths")?); | 367 .expect("commands.status.relative should have a default value"); |
368 | |
369 let relativize_paths = relative_status || { | |
370 // TODO should be dependent on whether patterns are passed once | |
371 // we support those. | |
372 // See in Python code with `getuipathfn` usage in `commands.py`. | |
373 let legacy_relative_behavior = false; | |
374 match relative_paths(invocation.config)? { | |
375 RelativePaths::Legacy => legacy_relative_behavior, | |
376 RelativePaths::Bool(v) => v, | |
377 } | |
378 }; | |
379 | |
366 let output = DisplayStatusPaths { | 380 let output = DisplayStatusPaths { |
367 ui, | 381 ui, |
368 no_status, | 382 no_status, |
369 relativize: if relative_paths { | 383 relativize: if relativize_paths { |
370 Some(RelativizePaths::new(repo)?) | 384 Some(RelativizePaths::new(repo)?) |
371 } else { | 385 } else { |
372 None | 386 None |
373 }, | 387 }, |
374 print0, | 388 print0, |