Skip to content


Subversion checkout URL

You can clone with
Download ZIP


Repo.blame don't return multi lines. #47

niyaton opened this Issue · 6 comments

5 participants


According to API reference,

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/
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 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).


Hi niyaton,

Can you confirm that it works for you with the latest version on the 0.3 branch ?



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.

 [<git.Commit "d7c7a1a1bdb22db4c4a4277564cf62dc89b4d42f">, ['']],
 [<git.Commit "15f829a5587d31a33b4be1a93ae277726c6ba1ae">, ['    if m:']],
 [<git.Commit "d7c7a1a1bdb22db4c4a4277564cf62dc89b4d42f">, ['']],
@vitalif vitalif referenced this issue from a commit in vitalif/GitPython
Vitaliy Filippov Fix blame output (fixes gitpython-developers/GitPython#47) 1045242

It's very easy to fix, see the commit from my fork (link is in the issue because my commit references it)


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 .

@Byron Byron added the acknowledged label
@Byron Byron added this to the v0.3.5 - bugfixes milestone
@Byron Byron self-assigned this

The latest version definitely supports multiple lines per blame object.
Additionally, I have added a unit-test to verify this truly works.

@Byron Byron closed this
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.