summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Thiel <byronimo@gmail.com>2016-07-17 10:31:53 +0200
committerSebastian Thiel <byronimo@gmail.com>2016-07-17 10:31:53 +0200
commit2ff3a3e72b1ff79e75777ccdddc86f8540ce833d (patch)
tree2102ac009f351063b63f740b7d148158f8ae4a52
parent0ed3cd7f798057c02799b6046987ed6a2e313126 (diff)
downloadgitpython-2ff3a3e72b1ff79e75777ccdddc86f8540ce833d.tar.gz
fix(blame): lazily fetch full commit message
That way, we will not only get the summary line contained in the blame, but fetch the full message. This is more costly than the previous implementation allowed it to be, but being less surprising/correct certainly is the preferred behaviour here. Fixes #485
-rw-r--r--git/repo/base.py6
-rw-r--r--git/test/test_repo.py2
2 files changed, 3 insertions, 5 deletions
diff --git a/git/repo/base.py b/git/repo/base.py
index 282dfc15..61864060 100644
--- a/git/repo/base.py
+++ b/git/repo/base.py
@@ -714,8 +714,7 @@ class Repo(object):
authored_date=int(props[b'author-time']),
committer=Actor(safe_decode(props[b'committer']),
safe_decode(props[b'committer-mail'].lstrip(b'<').rstrip(b'>'))),
- committed_date=int(props[b'committer-time']),
- message=safe_decode(props[b'summary']))
+ committed_date=int(props[b'committer-time']))
commits[hexsha] = c
else:
# Discard the next line (it's a filename end tag)
@@ -815,8 +814,7 @@ class Repo(object):
authored_date=info['author_date'],
committer=Actor._from_string(
info['committer'] + ' ' + info['committer_email']),
- committed_date=info['committer_date'],
- message=info['summary'])
+ committed_date=info['committer_date'])
commits[sha] = c
# END if commit objects needs initial creation
if not is_binary:
diff --git a/git/test/test_repo.py b/git/test/test_repo.py
index fc8125fa..87887bad 100644
--- a/git/test/test_repo.py
+++ b/git/test/test_repo.py
@@ -307,7 +307,7 @@ class TestRepo(TestBase):
assert_equal('Tom Preston-Werner', c.committer.name)
assert_equal('tom@mojombo.com', c.committer.email)
assert_equal(1191997100, c.committed_date)
- assert_equal('initial grit setup', c.message)
+ self.assertRaisesRegexp(ValueError, "634396b2f541a9f2d58b00be1a07f0c358b999b3 missing", lambda: c.message)
# test the 'lines per commit' entries
tlist = b[0][1]