I am using this for loop to loop through all commits:
repo = Repo("C:/Users/shiro/Desktop/lucene-solr/") for commit in list(repo.iter_commits()): print commit.files_list # how to do that ? How can I get a list with the files affected from this specific commit ?
3 Answers
Try it
for commit in list(repo.iter_commits()): commit.stats.files from git import Repo repo = Repo('/home/worldmind/) prev = repo.commit('30c55d43d143189698bebb759143ed72e766aaa9') curr = repo.commit('5f5eb0a3446628ef0872170bd989f4e2fa760277') diff_index = prev.diff(curr) for diff in diff_index: print(diff.change_type) print(f"{diff.a_path} -> {diff.b_path}") I solved this problem for SCM Workbench. The important file is:
Look at cmdCommitLogForFile() and its helper __addCommitChangeInformation().
The trick is to diff the tree objects.
2