diff -r df9eabc9837b -r e57f76c28f7b rust/rhg/src/commands/files.rs --- a/rust/rhg/src/commands/files.rs Wed Jan 11 17:08:23 2023 +0100 +++ b/rust/rhg/src/commands/files.rs Wed Jan 11 17:30:55 2023 +0100 @@ -51,24 +51,15 @@ )); } + let (narrow_matcher, narrow_warnings) = narrow::matcher(repo)?; + print_narrow_sparse_warnings(&narrow_warnings, &[], invocation.ui, repo)?; + if let Some(rev) = rev { - if repo.has_narrow() { - return Err(CommandError::unsupported( - "rhg files -r is not supported in narrow clones", - )); - } - let files = list_rev_tracked_files(repo, rev) + let files = list_rev_tracked_files(repo, rev, narrow_matcher) .map_err(|e| (e, rev.as_ref()))?; display_files(invocation.ui, repo, files.iter()) } else { // The dirstate always reflects the sparse narrowspec. - let (narrow_matcher, narrow_warnings) = narrow::matcher(repo)?; - print_narrow_sparse_warnings( - &narrow_warnings, - &[], - invocation.ui, - repo, - )?; let dirstate = repo.dirstate_map()?; let files_res: Result, _> = filter_map_results(dirstate.iter(), |(path, entry)| {