Commit: allow retrieval of the tree's ID
Let the user retrieve the ID of the commit's tree instead of having to load the tree just to retrieve this information.
This commit is contained in:
parent
dcc9051a8c
commit
5a80091c2d
10
src/commit.c
10
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}
|
||||
};
|
||||
|
@ -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)
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user