mirror of
https://github.com/Aider-AI/aider.git
synced 2025-05-24 22:34:59 +00:00
Normalize paths before checking aiderignore #479
This commit is contained in:
parent
49c904eea5
commit
6dd5ae69e3
3 changed files with 16 additions and 13 deletions
|
@ -165,13 +165,6 @@ class Coder:
|
||||||
except FileNotFoundError:
|
except FileNotFoundError:
|
||||||
self.repo = None
|
self.repo = None
|
||||||
|
|
||||||
if self.repo:
|
|
||||||
filtered_fnames = self.repo.filter_ignored_files(fnames)
|
|
||||||
for fname in fnames:
|
|
||||||
if fname not in filtered_fnames:
|
|
||||||
self.io.tool_error(f"Skipping {fname} that matches aiderignore spec.")
|
|
||||||
fnames = filtered_fnames
|
|
||||||
|
|
||||||
for fname in fnames:
|
for fname in fnames:
|
||||||
fname = Path(fname)
|
fname = Path(fname)
|
||||||
if not fname.exists():
|
if not fname.exists():
|
||||||
|
@ -182,7 +175,13 @@ class Coder:
|
||||||
if not fname.is_file():
|
if not fname.is_file():
|
||||||
raise ValueError(f"{fname} is not a file")
|
raise ValueError(f"{fname} is not a file")
|
||||||
|
|
||||||
self.abs_fnames.add(str(fname.resolve()))
|
fname = str(fname.resolve())
|
||||||
|
|
||||||
|
if self.repo and self.repo.ignored_file(fname):
|
||||||
|
self.io.tool_error(f"Skipping {fname} that matches aiderignore spec.")
|
||||||
|
continue
|
||||||
|
|
||||||
|
self.abs_fnames.add(fname)
|
||||||
self.check_added_files()
|
self.check_added_files()
|
||||||
|
|
||||||
if self.repo:
|
if self.repo:
|
||||||
|
|
|
@ -342,7 +342,7 @@ class Commands:
|
||||||
else:
|
else:
|
||||||
fname = Path(self.coder.root) / word
|
fname = Path(self.coder.root) / word
|
||||||
|
|
||||||
if self.coder.repo and not self.coder.repo.filter_ignored_files([fname]):
|
if self.coder.repo and self.coder.repo.ignored_file(fname):
|
||||||
self.io.tool_error(f"Skipping {fname} that matches aiderignore spec.")
|
self.io.tool_error(f"Skipping {fname} that matches aiderignore spec.")
|
||||||
continue
|
continue
|
||||||
|
|
||||||
|
|
|
@ -198,14 +198,18 @@ class GitRepo:
|
||||||
# convert to appropriate os.sep, since git always normalizes to /
|
# convert to appropriate os.sep, since git always normalizes to /
|
||||||
res = set(self.normalize_path(path) for path in files)
|
res = set(self.normalize_path(path) for path in files)
|
||||||
|
|
||||||
return self.filter_ignored_files(res)
|
res = [fname for fname in res if not self.ignored_file(fname)]
|
||||||
|
|
||||||
|
return res
|
||||||
|
|
||||||
def normalize_path(self, path):
|
def normalize_path(self, path):
|
||||||
return str(Path(PurePosixPath((Path(self.root) / path).relative_to(self.root))))
|
return str(Path(PurePosixPath((Path(self.root) / path).relative_to(self.root))))
|
||||||
|
|
||||||
def filter_ignored_files(self, fnames):
|
def ignored_file(self, fname):
|
||||||
if not self.aider_ignore_file or not self.aider_ignore_file.is_file():
|
if not self.aider_ignore_file or not self.aider_ignore_file.is_file():
|
||||||
return fnames
|
return
|
||||||
|
|
||||||
|
fname = self.normalize_path(fname)
|
||||||
|
|
||||||
mtime = self.aider_ignore_file.stat().st_mtime
|
mtime = self.aider_ignore_file.stat().st_mtime
|
||||||
if mtime != self.aider_ignore_ts:
|
if mtime != self.aider_ignore_ts:
|
||||||
|
@ -216,7 +220,7 @@ class GitRepo:
|
||||||
lines,
|
lines,
|
||||||
)
|
)
|
||||||
|
|
||||||
return [fname for fname in fnames if not self.aider_ignore_spec.match_file(fname)]
|
return self.aider_ignore_spec.match_file(fname)
|
||||||
|
|
||||||
def path_in_repo(self, path):
|
def path_in_repo(self, path):
|
||||||
if not self.repo:
|
if not self.repo:
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue