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

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy