##// 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
use crate::commands::Command;
use crate::error::CommandError;
use crate::ui::Ui;
use hg::operations::FindRoot;
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.
";
pub struct RootCommand<'a> {
ui: &'a Ui,
}
impl<'a> RootCommand<'a> {
pub fn new(ui: &'a Ui) -> Self {
RootCommand { ui }
}
}
impl<'a> Command<'a> for RootCommand<'a> {
fn run(&self) -> Result<(), CommandError> {
let path_buf = FindRoot::new().run()?;
let bytes = get_bytes_from_path(path_buf);
// TODO use formating macro
self.ui.write_stdout(&[bytes.as_slice(), b"\n"].concat())?;
Ok(())
}
}