refactor: wrap entire get_tracked_files method in try/except block

This commit is contained in:
Paul Gauthier (aider) 2024-08-30 07:45:56 -07:00
parent 6b2933e2bd
commit 303a314c5e

View file

@ -246,6 +246,7 @@ class GitRepo:
return diffs
def get_tracked_files(self):
try:
if not self.repo:
return []
@ -259,26 +260,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)]
return res
except Exception as e:
raise UnableToCountRepoFiles(f"Error getting tracked files: {str(e)}")
def normalize_path(self, path):
orig_path = path