##// END OF EJS Templates
rhg: Add basic test with a shared repository...
rhg: Add basic test with a shared repository Differential Revision: https://phab.mercurial-scm.org/D9940

File last commit:

r47165:252d1bdb default
r47189:f3f4d1b7 default
Show More
debugdata.rs
36 lines | 848 B | application/rls-services+xml | RustLexer
Antoine Cezar
rhg: add a `DebugData` `Command` to prepare the `rhg debugdata` subcommand...
r46099 use crate::commands::Command;
Simon Sapin
rust: remove `FooError` structs with only `kind: FooErrorKind` enum field...
r47163 use crate::error::CommandError;
Antoine Cezar
rhg: add a `DebugData` `Command` to prepare the `rhg debugdata` subcommand...
r46099 use crate::ui::Ui;
Simon Sapin
rhg: replace `map_*_error` functions with `From` impls...
r47165 use hg::operations::{debug_data, DebugDataKind};
Simon Sapin
rust: introduce Repo and Vfs types for filesystem abstraction...
r46782 use hg::repo::Repo;
Antoine Cezar
rhg: Add debug timing...
r46101 use micro_timer::timed;
Antoine Cezar
rhg: add a `DebugData` `Command` to prepare the `rhg debugdata` subcommand...
r46099
pub const HELP_TEXT: &str = "
Dump the contents of a data file revision
";
pub struct DebugDataCommand<'a> {
rev: &'a str,
kind: DebugDataKind,
}
impl<'a> DebugDataCommand<'a> {
pub fn new(rev: &'a str, kind: DebugDataKind) -> Self {
DebugDataCommand { rev, kind }
}
}
impl<'a> Command for DebugDataCommand<'a> {
Antoine Cezar
rhg: Add debug timing...
r46101 #[timed]
Antoine Cezar
rhg: add a `DebugData` `Command` to prepare the `rhg debugdata` subcommand...
r46099 fn run(&self, ui: &Ui) -> Result<(), CommandError> {
Simon Sapin
rust: introduce Repo and Vfs types for filesystem abstraction...
r46782 let repo = Repo::find()?;
let data = debug_data(&repo, self.rev, self.kind)
Simon Sapin
rhg: replace `map_*_error` functions with `From` impls...
r47165 .map_err(|e| (e, self.rev))?;
Antoine Cezar
rhg: add a `DebugData` `Command` to prepare the `rhg debugdata` subcommand...
r46099
let mut stdout = ui.stdout_buffer();
stdout.write_all(&data)?;
stdout.flush()?;
Ok(())
}
}