diff --git a/src/beet/toolchain/project.py b/src/beet/toolchain/project.py index 4c5c35cbd..9fd90ab13 100644 --- a/src/beet/toolchain/project.py +++ b/src/beet/toolchain/project.py @@ -104,12 +104,21 @@ def cache(self) -> ProjectCache: @property def ignore(self) -> List[str]: - ignore = list(self.config.ignore) + ignore = set(self.config.ignore) if self.output_directory and self.directory in self.output_directory.parents: - ignore.append( + ignore.add( f"{self.output_directory.relative_to(self.directory).as_posix()}/" ) - return ignore + for entry in self.config.pipeline: + if isinstance(entry, ProjectConfig): + ignore.update(entry.ignore) + if entry.output: + output_directory = Path(entry.output) + if entry.directory in output_directory.parents: + ignore.add( + f"{output_directory.relative_to(entry.directory).as_posix()}/" + ) + return list(ignore) @property def worker_pool(self):