Show More
@@ -1248,6 +1248,7 b' class dirstate:' | |||
|
1248 | 1248 | matchmod.exactmatcher, |
|
1249 | 1249 | matchmod.includematcher, |
|
1250 | 1250 | matchmod.intersectionmatcher, |
|
1251 | matchmod.nevermatcher, | |
|
1251 | 1252 | matchmod.unionmatcher, |
|
1252 | 1253 | ) |
|
1253 | 1254 |
@@ -134,6 +134,31 b' impl Matcher for AlwaysMatcher {' | |||
|
134 | 134 | } |
|
135 | 135 | } |
|
136 | 136 | |
|
137 | /// Matches nothing. | |
|
138 | #[derive(Debug)] | |
|
139 | pub struct NeverMatcher; | |
|
140 | ||
|
141 | impl Matcher for NeverMatcher { | |
|
142 | fn file_set(&self) -> Option<&HashSet<HgPathBuf>> { | |
|
143 | None | |
|
144 | } | |
|
145 | fn exact_match(&self, _filename: &HgPath) -> bool { | |
|
146 | false | |
|
147 | } | |
|
148 | fn matches(&self, _filename: &HgPath) -> bool { | |
|
149 | false | |
|
150 | } | |
|
151 | fn visit_children_set(&self, _directory: &HgPath) -> VisitChildrenSet { | |
|
152 | VisitChildrenSet::Empty | |
|
153 | } | |
|
154 | fn matches_everything(&self) -> bool { | |
|
155 | false | |
|
156 | } | |
|
157 | fn is_exact(&self) -> bool { | |
|
158 | true | |
|
159 | } | |
|
160 | } | |
|
161 | ||
|
137 | 162 | /// Matches the input files exactly. They are interpreted as paths, not |
|
138 | 163 | /// patterns. |
|
139 | 164 | /// |
@@ -15,7 +15,7 b' use cpython::{' | |||
|
15 | 15 | PyResult, PyTuple, Python, PythonObject, ToPyObject, |
|
16 | 16 | }; |
|
17 | 17 | use hg::dirstate::status::StatusPath; |
|
18 |
use hg::matchers::{Matcher, |
|
|
18 | use hg::matchers::{IntersectionMatcher, Matcher, NeverMatcher, UnionMatcher}; | |
|
19 | 19 | use hg::{ |
|
20 | 20 | matchers::{AlwaysMatcher, FileMatcher, IncludeMatcher}, |
|
21 | 21 | parse_pattern_syntax, |
@@ -158,6 +158,7 b' fn extract_matcher(' | |||
|
158 | 158 | ) -> PyResult<Box<dyn Matcher + Sync>> { |
|
159 | 159 | match matcher.get_type(py).name(py).borrow() { |
|
160 | 160 | "alwaysmatcher" => Ok(Box::new(AlwaysMatcher)), |
|
161 | "nevermatcher" => Ok(Box::new(NeverMatcher)), | |
|
161 | 162 | "exactmatcher" => { |
|
162 | 163 | let files = matcher.call_method( |
|
163 | 164 | py, |
General Comments 0
You need to be logged in to leave comments.
Login now