Handle diff of file not yet part of repo

This commit is contained in:
Paul Gauthier 2023-08-18 13:20:27 -07:00
parent 9933ad85b0
commit ae8d04a95f
4 changed files with 58 additions and 4 deletions

View file

@ -721,7 +721,6 @@ class Coder:
self.io.tool_output(f"Committing {path} before applying edits.")
self.need_commit_before_edits.add(path)
return
def allowed_to_edit(self, path):
full_path = self.abs_root_path(path)
@ -763,6 +762,7 @@ class Coder:
self.abs_fnames.add(full_path)
self.check_for_dirty_commit(path)
return True
apply_update_errors = 0
@ -891,6 +891,7 @@ class Coder:
return
if not self.repo:
return
self.repo.commit(fnames=self.need_commit_before_edits)
# files changed, move cur messages back behind the files messages

View file

@ -135,14 +135,20 @@ class GitRepo:
if not fnames:
fnames = []
diffs = ""
for fname in fnames:
if not self.path_in_repo(fname):
diffs += f"Added {fname}\n"
if current_branch_has_commits:
args = ["HEAD", "--"] + list(fnames)
return self.repo.git.diff(*args)
diffs += self.repo.git.diff(*args)
return diffs
wd_args = ["--"] + list(fnames)
index_args = ["--cached"] + wd_args
diffs = self.repo.git.diff(*index_args)
diffs += self.repo.git.diff(*index_args)
diffs += self.repo.git.diff(*wd_args)
return diffs