##// END OF EJS Templates
tags: take lock instead of wlock before writing hgtagsfnodes1 cache...
tags: take lock instead of wlock before writing hgtagsfnodes1 cache This cache is shared across stores and hence we should take store lock before writing to it. Otherwise there will be race where one share with wlock is writing to this cache and other share with wlock is trying to read it simultaneously. Differential Revision: https://phab.mercurial-scm.org/D9001

File last commit:

r45922:5dbf875b default
r46005:64de86fd default
Show More
root.rs
34 lines | 731 B | application/rls-services+xml | RustLexer
Antoine Cezar
rhg: add RootCommand using hg-core FindRoot operation to prepare `hg root`...
r45592 use crate::commands::Command;
Antoine Cezar
rhg: simplify `FindRootError` handling...
r45922 use crate::error::CommandError;
Antoine Cezar
rhg: add RootCommand using hg-core FindRoot operation to prepare `hg root`...
r45592 use crate::ui::Ui;
Antoine Cezar
rhg: simplify `FindRootError` handling...
r45922 use hg::operations::FindRoot;
Antoine Cezar
rhg: add RootCommand using hg-core FindRoot operation to prepare `hg root`...
r45592 use hg::utils::files::get_bytes_from_path;
pub const HELP_TEXT: &str = "
Print the root directory of the current repository.
Returns 0 on success.
";
Antoine Cezar
rhg: ask the error message from `CommandError`...
r45920 pub struct RootCommand<'a> {
ui: &'a Ui,
}
impl<'a> RootCommand<'a> {
pub fn new(ui: &'a Ui) -> Self {
RootCommand { ui }
}
Antoine Cezar
rhg: add RootCommand using hg-core FindRoot operation to prepare `hg root`...
r45592 }
Antoine Cezar
rhg: ask the error message from `CommandError`...
r45920 impl<'a> Command<'a> for RootCommand<'a> {
fn run(&self) -> Result<(), CommandError> {
Antoine Cezar
rhg: simplify `FindRootError` handling...
r45922 let path_buf = FindRoot::new().run()?;
Antoine Cezar
rhg: add RootCommand using hg-core FindRoot operation to prepare `hg root`...
r45592
let bytes = get_bytes_from_path(path_buf);
// TODO use formating macro
self.ui.write_stdout(&[bytes.as_slice(), b"\n"].concat())?;
Antoine Cezar
rhg: Do not return error when when we really mean ok in commands...
r45919 Ok(())
Antoine Cezar
rhg: add RootCommand using hg-core FindRoot operation to prepare `hg root`...
r45592 }
}