在gitpython中获取特定文件的所有修订版本

8
我正在使用gitpython库进行git操作,并从Python代码中获取git信息。我想要检索特定文件的所有版本,但是在文档中找不到具体的参考。请问有人能够提供一些线索,哪个函数将有助于这方面的工作?谢谢。

1
我不这么认为,因为所提到的问题根本没有涉及gitpython。 - Byron
2个回答

9

一个后继步骤,用于读取每个文件:

import git
repo = git.Repo()
path = "file_you_are_looking_for"

revlist = (
    (commit, (commit.tree / path).data_stream.read())
    for commit in repo.iter_commits(paths=path)
)

for commit, filecontents in revlist:
    ...

6

虽然没有这样的功能,但很容易实现:

import git
repo = git.Repo()
path = "dir/file_you_are_looking_for"

commits_touching_path = list(repo.iter_commits(paths=path))

即使涉及多条路径,性能也将是适度的。有关此内容的基准测试和更多代码,请参见Github上的问题


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接