diff --git a/rust/hg-core/src/dirstate/status.rs b/rust/hg-core/src/dirstate/status.rs --- a/rust/hg-core/src/dirstate/status.rs +++ b/rust/hg-core/src/dirstate/status.rs @@ -557,9 +557,11 @@ .unwrap(); } } else if self.is_ignored(&filename) && self.options.list_ignored { - files_sender - .send((filename.to_owned(), Dispatch::Ignored)) - .unwrap(); + if self.matcher.matches(&filename) { + files_sender + .send((filename.to_owned(), Dispatch::Ignored)) + .unwrap(); + } } } else if let Some(entry) = entry_option { // Used to be a file or a folder, now something else. diff --git a/tests/test-status.t b/tests/test-status.t --- a/tests/test-status.t +++ b/tests/test-status.t @@ -708,4 +708,3 @@ I A.hs I B.hs I ignored-folder/ctest.hs - I ignored-folder/other.txt (known-bad-output rust !)