diff --git a/dvc/ignore.py b/dvc/ignore.py index 2177768c29..2696e2678b 100644 --- a/dvc/ignore.py +++ b/dvc/ignore.py @@ -40,7 +40,7 @@ def __init__(self, pattern_list, dirname, sep): ] self.ignore_spec = [ - (ignore, re.compile("|".join(item[0] for item in group))) + (ignore, [re.compile(item[0]) for item in group]) for ignore, group in groupby( self.regex_pattern_list, lambda x: x[1] ) @@ -107,8 +107,8 @@ def matches(pattern, path, is_dir) -> bool: result = False - for ignore, pattern in self.ignore_spec[::-1]: - if matches(pattern, path, is_dir): + for ignore, patterns in self.ignore_spec[::-1]: + if any(matches(pattern, path, is_dir) for pattern in patterns): result = ignore break return result