◐ Shell
clean mode source ↗

How to get the hash of the most recent commit of a file under a ref? · gitpython-developers/GitPython · Discussion #1949

I can get the required information using the git wrapper:

repo.git.log("-1", '--pretty="%H"', ref, '--', path)

However this is too slow when run on in a loop over every file in a set of refs due to process execution overhead.

You must be logged in to vote

The algorithm can't be used - instead one should traverse each commit, see which files were changed, and remove those from the set of all currently tracked files while associating the hash of the commit. Repeat until the set of tracked files is empty.

This will traverse the commit-graph once, in the worst case, and diff the trees of each commit. But there isn't really any other way.

View full answer

The algorithm can't be used - instead one should traverse each commit, see which files were changed, and remove those from the set of all currently tracked files while associating the hash of the commit. Repeat until the set of tracked files is empty.

This will traverse the commit-graph once, in the worst case, and diff the trees of each commit. But there isn't really any other way.

You must be logged in to vote

0 replies