mirror of
https://github.com/Aider-AI/aider.git
synced 2025-05-24 22:34:59 +00:00
fix: Improve handling of read-only files in the cmd_add
command
This commit is contained in:
parent
69dd55af5d
commit
8d59ce586c
2 changed files with 19 additions and 4 deletions
|
@ -592,7 +592,7 @@ class Commands:
|
|||
if abs_file_path in self.coder.abs_fnames:
|
||||
self.io.tool_error(f"{matched_file} is already in the chat")
|
||||
elif abs_file_path in self.coder.abs_read_only_fnames:
|
||||
if self.coder.repo and matched_file in self.coder.repo.get_tracked_files():
|
||||
if self.coder.repo and self.coder.repo.path_in_repo(matched_file):
|
||||
self.coder.abs_read_only_fnames.remove(abs_file_path)
|
||||
self.coder.abs_fnames.add(abs_file_path)
|
||||
self.io.tool_output(
|
||||
|
|
|
@ -561,9 +561,24 @@ class TestCommands(TestCase):
|
|||
)
|
||||
)
|
||||
|
||||
# Mock the repo to simulate a tracked file
|
||||
coder.repo = mock.MagicMock()
|
||||
coder.repo.is_tracked_file.return_value = True
|
||||
# Try to add the read-only file
|
||||
commands.cmd_add(str(test_file))
|
||||
|
||||
# It's not in the repo, should not do anything
|
||||
self.assertFalse(
|
||||
any(os.path.samefile(str(test_file.resolve()), fname) for fname in coder.abs_fnames)
|
||||
)
|
||||
self.assertTrue(
|
||||
any(
|
||||
os.path.samefile(str(test_file.resolve()), fname)
|
||||
for fname in coder.abs_read_only_fnames
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
repo = git.Repo()
|
||||
repo.git.add(str(test_file))
|
||||
repo.git.commit("-m", "initial")
|
||||
|
||||
# Try to add the read-only file
|
||||
commands.cmd_add(str(test_file))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue