refactor: move UnableToCountRepoFiles to repo.py and raise from get_tracked_files

This commit is contained in:
Paul Gauthier (aider) 2024-08-30 07:44:04 -07:00
parent 3afc3d9089
commit c97f699492
2 changed files with 19 additions and 9 deletions

View file

@ -12,7 +12,7 @@ from prompt_toolkit.enums import EditingMode
from aider import __version__, models, utils
from aider.args import get_parser
from aider.coders import Coder
from aider.coders.base_coder import UnableToCountRepoFiles
from aider.repo import UnableToCountRepoFiles
from aider.commands import Commands, SwitchCoder
from aider.format_settings import format_settings, scrub_sensitive_info
from aider.history import ChatSummary

View file

@ -11,6 +11,10 @@ from aider.sendchat import simple_send_with_retries
from .dump import dump # noqa: F401
class UnableToCountRepoFiles(Exception):
pass
class GitRepo:
repo = None
aider_ignore_file = None
@ -255,16 +259,22 @@ class GitRepo:
if commit in self.tree_files:
files = self.tree_files[commit]
else:
try:
for blob in commit.tree.traverse():
if blob.type == "blob": # blob is a file
files.add(blob.path)
files = set(self.normalize_path(path) for path in files)
self.tree_files[commit] = set(files)
except Exception as e:
raise UnableToCountRepoFiles(f"Error traversing commit tree: {str(e)}")
# Add staged files
try:
index = self.repo.index
staged_files = [path for path, _ in index.entries.keys()]
files.update(self.normalize_path(path) for path in staged_files)
except Exception as e:
raise UnableToCountRepoFiles(f"Error getting staged files: {str(e)}")
res = [fname for fname in files if not self.ignored_file(fname)]