##// END OF EJS Templates
dirstate-v2: hash the source of the ignore patterns as well...
dirstate-v2: hash the source of the ignore patterns as well Fixes the test introduced in the last changeset. This caused the hash to change, which means that the check in the test had to be adapted. Since this hash is only done as a caching mechanism, invalidation does not pose any backwards compatibility issues.

File last commit:

r50379:85f5d11c default
r50453:363923bd 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(())
}