Open
Description
I'm using gitpython to collect diff information between a commit and his parent.
Generally, the following code works fine when the number of diffs to retrieve is small:
diffs = c.parents[0].diff(c, create_patch=True)
Conversely, when the number of diffs is huge (https://git.eclipse.org/c/papyrus/org.eclipse.papyrus.git/commit/?id=f5f817279baa2008450aa32b18e576c2fcda02bb), that code is not able to produce an output after 24h (at least).
Is there another way I could use to retrieve the diff information between two commits?
Below you can find the code to replicate this behaviour:
from git import *
REPO_PATH = ""C:/Users/.../org.eclipse.papyrus"" (you can clone it from here: https://git.eclipse.org/c/papyrus/org.eclipse.papyrus.git/)
BRANCH = "2.0.0"
def main():
repo = Repo(REPO_PATH, odbt=GitCmdObjectDB)
reference = [r for r in repo.references if r.name == BRANCH][0]
for c in repo.iter_commits(rev=reference):
if c.hexsha == 'f5f817279baa2008450aa32b18e576c2fcda02bb':
diffs = c.parents[0].diff(c, create_patch=True)
print str(len(diffs))
break
if __name__ == "__main__":
main()