GitPython“责备”不会给我所有改变的线条

时间:2016-09-25 19:26:12

标签: python git gitpython

我正在使用GitPython。下面我打印特定提交中更改的总行数:f092795fe94ba727f7368b63d8eb1ecd39749fc4

from git import Repo

repo = Repo("C:/Users/shiro/Desktop/lucene-solr/")

sum_lines = 0
for blame_commit, lines_list in repo.blame('HEAD', 'lucene/core/src/java/org/apache/lucene/analysis/Analyzer.java'):
    if blame_commit.hexsha == 'f092795fe94ba727f7368b63d8eb1ecd39749fc4':
        sum_lines += len(lines_list)
print sum_lines

输出为38.但是,如果您只是转到https://github.com/apache/lucene-solr/commit/f092795fe94ba727f7368b63d8eb1ecd39749fc4并查看文件/lucene/analysis/Analyzer.java的提交,实际更改的行数不是38,而是47.有些行完全没有了。

为什么我的错误值?

1 个答案:

答案 0 :(得分:2)

null告诉您哪个提交最后更改了给定文件中的每一行。

您不计算该提交中更改的行数,而是计算当前HEAD文件中最后由该特定提交修改的行数。

await context.Forward( new TestDialogForm(), ChildTestDialogCompleted, message, System.Threading.CancellationToken.None); 更改为git blame可以为您提供所期望的结果。

HEAD