diff --git a/aider/coders/base_coder.py b/aider/coders/base_coder.py index 86dc20e81..35726dd92 100755 --- a/aider/coders/base_coder.py +++ b/aider/coders/base_coder.py @@ -100,6 +100,7 @@ class Coder: stream=True, use_git=True, voice_language=None, + aider_ignore_file=None, ): if not fnames: fnames = [] @@ -154,7 +155,7 @@ class Coder: if use_git: try: - self.repo = GitRepo(self.io, fnames, git_dname) + self.repo = GitRepo(self.io, fnames, git_dname, aider_ignore_file) self.root = self.repo.root except FileNotFoundError: self.repo = None diff --git a/aider/main.py b/aider/main.py index 620e17ace..f3461dd6e 100644 --- a/aider/main.py +++ b/aider/main.py @@ -305,10 +305,13 @@ def main(argv=None, input=None, output=None, force_git_root=None): default=True, help="Enable/disable adding .aider* to .gitignore (default: True)", ) + default_aiderignore_file = ( + os.path.join(git_root, ".aiderignore") if git_root else ".aiderignore" + ) git_group.add_argument( "--aiderignore", metavar="AIDERIGNORE", - default=".aiderignore", + default=default_aiderignore_file, help="Specify the aider ignore file (default: .aiderignore in git root)", ) git_group.add_argument( @@ -507,6 +510,7 @@ def main(argv=None, input=None, output=None, force_git_root=None): stream=args.stream, use_git=args.git, voice_language=args.voice_language, + aider_ignore_file=args.aiderignore, ) except ValueError as err: io.tool_error(str(err)) diff --git a/aider/repo.py b/aider/repo.py index bc1c338ec..f3a3818d4 100644 --- a/aider/repo.py +++ b/aider/repo.py @@ -1,8 +1,8 @@ import os -import pathspec from pathlib import Path, PurePosixPath import git +import pathspec from aider import models, prompts, utils from aider.sendchat import simple_send_with_retries @@ -196,14 +196,14 @@ class GitRepo: for path in files ) - return res + return self.filter_ignored_files(res) def filter_ignored_files(self, fnames): if not self.aider_ignore_file: return fnames - with open(self.aider_ignore_file, 'r') as f: - ignore_spec = pathspec.PathSpec.from_lines('gitwildmatch', f) + with open(self.aider_ignore_file, "r") as f: + ignore_spec = pathspec.PathSpec.from_lines("gitwildmatch", f) return [fname for fname in fnames if not ignore_spec.match_file(fname)]