Added ability to commit only dirty files.

This commit is contained in:
Paul Gauthier 2023-05-08 17:00:00 -07:00
parent e824dd1c68
commit f9569e7645

View file

@ -422,11 +422,13 @@ class Coder:
diffs = "# Diffs:\n" diffs = "# Diffs:\n"
dirty_fnames = [] dirty_fnames = []
relative_dirty_fnames = []
for fname in self.fnames: for fname in self.fnames:
relative_fname = os.path.relpath(fname, repo.working_tree_dir) relative_fname = os.path.relpath(fname, repo.working_tree_dir)
these_diffs = repo.git.diff("HEAD", relative_fname) these_diffs = repo.git.diff("HEAD", relative_fname)
if these_diffs: if these_diffs:
dirty_fnames.append(fname) dirty_fnames.append(fname)
relative_dirty_fnames.append(relative_fname)
diffs += these_diffs + "\n" diffs += these_diffs + "\n"
if not dirty_fnames: if not dirty_fnames:
@ -471,6 +473,10 @@ class Coder:
if not res: if not res:
self.console.print("[red]Skipped commmit.") self.console.print("[red]Skipped commmit.")
return return
else:
repo.git.add(*relative_dirty_fnames)
repo.git.commit("-m", commit_message)
self.console.print("[green]Commit successful.")
def main(): def main():