使用GitPython反向读取提交

时间:2018-12-05 12:41:38

标签: python gitpython

是否有一种方法可以使用GitPython库反向迭代提交,即从最旧的库到最新的库,类似于:

>>> from git import Repo
>>> repo = Repo('/path/to/repo')
>>> for commit in reversed(repo.iter_commits()):
...     print commit
... 
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: argument to reversed() must be a sequence

不必先将所有内容都包含在内存中,因为我的情况是处理大量提交(例如linux内核)?

2 个答案:

答案 0 :(得分:1)

看着documentation,看来iter_commits正将虚假信息传递给git-rev-list。查看其documentation可以发现它接受了--reverse标志,因此人们只能猜测repo.iter_commits(reverse=True)可以工作。

答案 1 :(得分:-1)

这里的主要问题是,您需要反向传递序列。但是iter_commits返回一个迭代器。 所以你可以做 commitList = list(repo.iter_commits())

,然后在commitList上使用反向逻辑