The blame information for the given file at the given revision.
Parm rev: revision specifier, see git-rev-parse for viable options.
Returns: list: [git.Commit, list: []] A list of tuples associating a Commit object with a list of lines that changed within the given commit. The Commit objects will be given in order of appearance.
blame method returns list of lines but I think the method always returns only one line.
The method pick up the first line of lines which were written in same commit (other lines are skipped and method don't return its information).
The behavior come from the lien 620 of git/repo/base.py.
The variable 'info' is initialized only when a line is first line of same commit.
But 'info' will be None after processing a line (the lien is not commit information).
We have to initialize 'info' to process subsequent lines.
I could verify that the fix by @vitalif doesn't break a test, but on the other hand, the blame test is not particularly strict either. Also it seems the fix tries to reference a variable which is possibly undefined.
Therefore I shall have a look in 0.3.5 .
Activity
mitar commented on Jun 6, 2012
I can confirm this problem with Python-0.3.2.RC1.tar.gz from PyPi, but it seems it works correctly with current master branch (tested with cd72d78).
Byron commented on Jun 7, 2012
Hi niyaton,
Can you confirm that it works for you with the latest version on the 0.3 branch ?
Thanks
estebank commented on Jun 21, 2013
I believe this is still present in 0.3.2 RC1.
When blaming a file I only get one line of code per blame element. It's particularly annoying in the case of empty lines.
Fix blame output (fixes gitpython-developers#47)
vitalif commented on Nov 28, 2013
It's very easy to fix, see the commit from my fork (link is in the issue because my commit references it)
Byron commented on Nov 19, 2014
I could verify that the fix by @vitalif doesn't break a test, but on the other hand, the blame test is not particularly strict either. Also it seems the fix tries to reference a variable which is possibly undefined.
Therefore I shall have a look in 0.3.5 .
Added test to verify blame commits can have multiple lines.
Byron commented on Jan 8, 2015
The latest version definitely supports multiple lines per blame object.
Additionally, I have added a unit-test to verify this truly works.
Merge pull request gitpython-developers#47 from kianmeng/fix-typos