mirror of
https://github.com/Aider-AI/aider.git
synced 2025-05-27 15:55:00 +00:00
aider: Refused to add blocked file by .gitignore and printed error message.
# Aider chat conversation: USER: crash when /add a file which is blocked by .gitignore; we should catch the error, print a tool_error an d refuse to /add the file . > /add tmp/wordpress.py Traceback (most recent call last): File "/home/m/.local/bin/aider", line 8, in <module> sys.exit(main()) File "/home/m/.local/lib/python3.10/site-packages/aider/main.py", line 564, in main coder.run() File "/home/m/.local/lib/python3.10/site-packages/aider/coders/base_coder.py", line 319, in run new_user_message = self.run_loop() File "/home/m/.local/lib/python3.10/site-packages/aider/coders/base_coder.py", line 398, in run_loop return self.commands.run(inp) File "/home/m/.local/lib/python3.10/site-packages/aider/commands.py", line 73, in run return self.do_run(matching_commands[0][1:], rest_inp) File "/home/m/.local/lib/python3.10/site-packages/aider/commands.py", line 51, in do_run return cmd_method(args) File "/home/m/.local/lib/python3.10/site-packages/aider/commands.py", line 316, in cmd_add self.coder.repo.repo.git.add(abs_file_path) File "/home/m/.local/lib/python3.10/site-packages/git/cmd.py", line 741, in <lambda> return lambda *args, **kwargs: self._call_process(name, *args, **kwargs) File "/home/m/.local/lib/python3.10/site-packages/git/cmd.py", line 1315, in _call_process return self.execute(call, **exec_kwargs) File "/home/m/.local/lib/python3.10/site-packages/git/cmd.py", line 1109, in execute raise GitCommandError(redacted_command, status, stderr_value, stdout_value) git.exc.GitCommandError: Cmd('git') failed due to: exit code(1) cmdline: git add /home/m/Private/Projects/Freelance/nbdter69/pars_porntube/tmp/wordpress.py stderr: 'The following paths are ignored by one of your .gitignore files: tmp hint: Use -f if you really want to add them. hint: Turn this message off by running hint: "git config advice.addIgnoredFile false"' ASSISTANT: To handle this issue, we need to modify the `cmd_add` method in the `Commands` class in the `aider/commands.py` file. We will add a check to see if the file is ignored by git before trying to add it. If it is ignored, we will print an error message and skip adding the file. Here is the *SEARCH/REPLACE block* for the change: <source>python aider/commands.py <<<<<<< SEARCH for matched_file in all_matched_files: abs_file_path = self.coder.abs_root_path(matched_file) if not abs_file_path.startswith(self.coder.root): self.io.tool_error( f"Can not add {abs_file_path}, which is not within {self.coder.root}" ) continue if self.coder.repo and matched_file not in git_files: self.coder.repo.repo.git.add(abs_file_path) git_added.append(matched_file) if abs_file_path in self.coder.abs_fnames: self.io.tool_error(f"{matched_file} is already in the chat") else: content = self.io.read_text(abs_file_path) if content is None: self.io.tool_error(f"Unable to read {matched_file}") else: self.coder.abs_fnames.add(abs_file_path) self.io.tool_output(f"Added {matched_file} to the chat") added_fnames.append(matched_file) ======= for matched_file in all_matched_files: abs_file_path = self.coder.abs_root_path(matched_file) if not abs_file_path.startswith(self.coder.root): self.io.tool_error( f"Can not add {abs_file_path}, which is not within {self.coder.root}" ) continue if self.coder.repo and matched_file not in git_files: try: self.coder.repo.repo.git.add(abs_file_path) git_added.append(matched_file) except git.exc.GitCommandError as e: self.io.tool_error(f"Unable to add {matched_file}: {str(e)}") continue if abs_file_path in self.coder.abs_fnames: self.io.tool_error(f"{matched_file} is already in the chat") else: content = self.io.read_text(abs_file_path) if content is None: self.io.tool_error(f"Unable to read {matched_file}") else: self.coder.abs_fnames.add(abs_file_path) self.io.tool_output(f"Added {matched_file} to the chat") added_fnames.append(matched_file) >>>>>>> REPLACE </source>
This commit is contained in:
parent
6556265c23
commit
5c9275191e
1 changed files with 6 additions and 2 deletions
|
@ -313,8 +313,12 @@ class Commands:
|
|||
continue
|
||||
|
||||
if self.coder.repo and matched_file not in git_files:
|
||||
self.coder.repo.repo.git.add(abs_file_path)
|
||||
git_added.append(matched_file)
|
||||
try:
|
||||
self.coder.repo.repo.git.add(abs_file_path)
|
||||
git_added.append(matched_file)
|
||||
except git.exc.GitCommandError as e:
|
||||
self.io.tool_error(f"Unable to add {matched_file}: {str(e)}")
|
||||
continue
|
||||
|
||||
if abs_file_path in self.coder.abs_fnames:
|
||||
self.io.tool_error(f"{matched_file} is already in the chat")
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue