##// END OF EJS Templates
rhg: fallback when encountering ellipsis revisions...
rhg: fallback when encountering ellipsis revisions Ellipsis revisions are still experimental and buggy in non-trivial histories. We currently have no plans to improve this situation nor to add support for ellipsis revisions in `rhg`. Falling back should be done carefully (since we may have already done some work that is visible to the user), but in this case it's highly unlikely that we're doing anything useful with a repo with ellipsis revisions, so this should be strictly better, also since the error message is more explicit.

File last commit:

r50379:85f5d11c default
r50454:7787174f stable
Show More
debugrhgsparse.rs
43 lines | 1.3 KiB | application/rls-services+xml | RustLexer
use std::os::unix::prelude::OsStrExt;
use crate::error::CommandError;
use clap::SubCommand;
use hg::{self, utils::hg_path::HgPath};
pub const HELP_TEXT: &str = "";
pub fn args() -> clap::App<'static, 'static> {
SubCommand::with_name("debugrhgsparse")
.arg(
clap::Arg::with_name("files")
.required(true)
.multiple(true)
.empty_values(false)
.value_name("FILES")
.help("Files to check against sparse profile"),
)
.about(HELP_TEXT)
}
pub fn run(invocation: &crate::CliInvocation) -> Result<(), CommandError> {
let repo = invocation.repo?;
let (matcher, _warnings) = hg::sparse::matcher(&repo).unwrap();
let files = invocation.subcommand_args.values_of_os("files");
if let Some(files) = files {
for file in files {
invocation.ui.write_stdout(b"matches: ")?;
invocation.ui.write_stdout(
if matcher.matches(HgPath::new(file.as_bytes())) {
b"yes"
} else {
b"no"
},
)?;
invocation.ui.write_stdout(b" | file: ")?;
invocation.ui.write_stdout(file.as_bytes())?;
invocation.ui.write_stdout(b"\n")?;
}
}
Ok(())
}