From 494dec65b558e2e70550f4974a8ee411e499f62b Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Sat, 31 Aug 2024 10:45:24 -0700 Subject: [PATCH] provide clear feedback when /undo fails midway through --- aider/commands.py | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/aider/commands.py b/aider/commands.py index 93a5c94bb..4c12d58e3 100644 --- a/aider/commands.py +++ b/aider/commands.py @@ -479,20 +479,24 @@ class Commands: return # Reset only the files which are part of `last_commit` - modified = set() + restored = set() + unrestored = set() for file_path in changed_files_last_commit: try: self.coder.repo.repo.git.checkout("HEAD~1", file_path) - modified.add(file_path) + restored.add(file_path) except ANY_GIT_ERROR: - self.io.tool_error(f"Error restoring {file_path}, aborting undo.") - self.io.tool_error("Modified files:") - for file in modified: - self.io.tool_error(f" {file}") - self.io.tool_error("Unmodified files:") - for file in set(changed_files_last_commit) - modified: - self.io.tool_error(f" {file}") - return + unrestored.add(file_path) + + if unrestored: + self.io.tool_error(f"Error restoring {file_path}, aborting undo.") + self.io.tool_error("Restored files:") + for file in restored: + self.io.tool_error(f" {file}") + self.io.tool_error("Unable to restore files:") + for file in unrestored: + self.io.tool_error(f" {file}") + return # Move the HEAD back before the latest commit self.coder.repo.repo.git.reset("--soft", "HEAD~1")