diff --git a/aider/repo.py b/aider/repo.py index 8b4cf9428..5b9d0b7d1 100644 --- a/aider/repo.py +++ b/aider/repo.py @@ -206,11 +206,16 @@ class GitRepo: if not self.aider_ignore_file or not self.aider_ignore_file.is_file(): return fnames - lines = self.aider_ignore_file.read_text().splitlines() - self.aider_ignore_spec = pathspec.PathSpec.from_lines( - pathspec.patterns.GitWildMatchPattern, - lines, - ) + mtime = self.aider_ignore_file.stat().st_mtime + dump(mtime) + + if mtime != self.aider_ignore_ts: + self.aider_ignore_ts = mtime + lines = self.aider_ignore_file.read_text().splitlines() + self.aider_ignore_spec = pathspec.PathSpec.from_lines( + pathspec.patterns.GitWildMatchPattern, + lines, + ) return [fname for fname in fnames if not self.aider_ignore_spec.match_file(fname)] diff --git a/tests/test_repo.py b/tests/test_repo.py index fcfde5f00..43fb9212f 100644 --- a/tests/test_repo.py +++ b/tests/test_repo.py @@ -204,6 +204,7 @@ class TestRepo(unittest.TestCase): self.assertIn(str(fname2), fnames) aiderignore.write_text("new.txt\n") + dump(aiderignore.read_text()) # new.txt should be gone! fnames = git_repo.get_tracked_files() @@ -211,6 +212,7 @@ class TestRepo(unittest.TestCase): self.assertIn(str(fname2), fnames) aiderignore.write_text("new2.txt\n") + dump(aiderignore.read_text()) # new2.txt should be gone! fnames = git_repo.get_tracked_files()