Mercurial > public > mercurial-scm > hg
view rust/rhg/src/commands/config.rs @ 50215:ae61851e6fe2 stable
dirstate: add a way to test races happening during status
We add the `devel.sync.status.pre-dirstate-write-file` config option to easily
test what happens when other operations happen during the window where
`hg status` is done working but has not updated the cache on disk yet.
We introduce the framework for testing such races too, actual tests will be
added in the next changesets. For now the test is only checking dirstate-v1. We
will extend the test coverage later too.
Check test documentation for details.
Code change from Rapha?l Gom?s <rgomes@octobus.net>
Test change from Pierre-Yves David <pierre-yves.david@octobus.net>
author | Rapha?l Gom?s <rgomes@octobus.net>, Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Tue, 28 Feb 2023 15:25:47 +0100 |
parents | b1e6265e8336 |
children | 37bc3edef76f |
line wrap: on
line source
use crate::error::CommandError; use clap::Arg; use format_bytes::format_bytes; use hg::errors::HgError; use hg::utils::SliceExt; pub const HELP_TEXT: &str = " With one argument of the form section.name, print just the value of that config item. "; pub fn args() -> clap::App<'static, 'static> { clap::SubCommand::with_name("config") .arg( Arg::with_name("name") .help("the section.name to print") .value_name("NAME") .required(true) .takes_value(true), ) .about(HELP_TEXT) } pub fn run(invocation: &crate::CliInvocation) -> Result<(), CommandError> { let (section, name) = invocation .subcommand_args .value_of("name") .expect("missing required CLI argument") .as_bytes() .split_2(b'.') .ok_or_else(|| HgError::unsupported("hg config <section>"))?; if let Some(value) = invocation.config.get(section, name) { invocation.ui.write_stdout(&format_bytes!(b"{}\n", value))?; Ok(()) } else { Err(CommandError::Unsuccessful) } }