使用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内核(?

查看文档,发现iter_commits正在将其kwargs传递给git-rev-list。查看它的文档可以发现它接受--reverse标志,所以只能猜测repo.iter_commits(reverse=True)会起作用。

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

然后使用commitList 上的反向逻辑

最新更新