擅长:python、mysql、java
<p>另一种解决方案是从给定提交延迟生成文件的修订。由于它是递归的,如果历史记录太大,它可能会中断。在</p>
<pre class="lang-py prettyprint-override"><code>def revisions(commit, file, last=None):
try:
entry = commit.tree[file]
except KeyError:
return
if entry != last:
yield entry
last = entry
for parent in commit.parents:
for rev in revisions(parent, file, last):
yield rev
</code></pre>