diff --git a/src/commit.c b/src/commit.c index 725a3c4..ef821be 100644 --- a/src/commit.c +++ b/src/commit.c @@ -32,6 +32,7 @@ #include "signature.h" #include "commit.h" #include "object.h" +#include "oid.h" extern PyTypeObject TreeType; @@ -120,7 +121,6 @@ Commit_author__get__(Commit *self) return build_signature((Object*)self, signature, encoding); } - PyDoc_STRVAR(Commit_tree__doc__, "The tree object attached to the commit."); PyObject * @@ -146,6 +146,13 @@ Commit_tree__get__(Commit *commit) return (PyObject*)py_tree; } +PyDoc_STRVAR(Commit_tree_id__doc__, "The id of the tree attached to the commit."); + +PyObject * +Commit_tree_id__get__(Commit *commit) +{ + return git_oid_to_python(git_commit_tree_id(commit->commit)); +} PyDoc_STRVAR(Commit_parents__doc__, "The list of parent commits."); @@ -201,6 +208,7 @@ PyGetSetDef Commit_getseters[] = { GETTER(Commit, committer), GETTER(Commit, author), GETTER(Commit, tree), + GETTER(Commit, tree_id), GETTER(Commit, parents), {NULL} }; diff --git a/test/test_commit.py b/test/test_commit.py index 85f3d23..c9e8fba 100644 --- a/test/test_commit.py +++ b/test/test_commit.py @@ -31,7 +31,7 @@ from __future__ import absolute_import from __future__ import unicode_literals import unittest -from pygit2 import GIT_OBJ_COMMIT, Signature +from pygit2 import GIT_OBJ_COMMIT, Signature, Oid from . import utils @@ -92,6 +92,7 @@ class CommitTest(utils.BareRepoTestCase): self.assertEqualSignature(committer, commit.committer) self.assertEqualSignature(author, commit.author) self.assertEqual(tree, commit.tree.hex) + self.assertEqual(Oid(hex=tree), commit.tree_id) self.assertEqual(1, len(commit.parents)) self.assertEqual(COMMIT_SHA, commit.parents[0].hex) @@ -118,6 +119,7 @@ class CommitTest(utils.BareRepoTestCase): self.assertEqualSignature(committer, commit.committer) self.assertEqualSignature(author, commit.author) self.assertEqual(tree, commit.tree.hex) + self.assertEqual(Oid(hex=tree), commit.tree_id) self.assertEqual(1, len(commit.parents)) self.assertEqual(COMMIT_SHA, commit.parents[0].hex)