Add the parents attribute to commit.
Only support getting the attribute for now.
This commit is contained in:
parent
3b403247d1
commit
3fc9a840a1
26
pygit2.c
26
pygit2.c
@ -644,6 +644,30 @@ Commit_set_author(Commit *commit, PyObject *value) {
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static PyObject *
|
||||||
|
Commit_get_parents(Commit *commit)
|
||||||
|
{
|
||||||
|
unsigned int parent_count = git_commit_parentcount(commit->commit);
|
||||||
|
unsigned int i;
|
||||||
|
git_commit *parent;
|
||||||
|
Object *obj;
|
||||||
|
|
||||||
|
PyObject *list = PyList_New(parent_count);
|
||||||
|
if (!list)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
for (i=0; i < parent_count; i++)
|
||||||
|
{
|
||||||
|
parent = git_commit_parent(commit->commit, i);
|
||||||
|
obj = wrap_object((git_object *)parent, commit->repo);
|
||||||
|
obj->own_obj = 0;
|
||||||
|
|
||||||
|
PyList_SET_ITEM(list, i, (PyObject *)obj);
|
||||||
|
}
|
||||||
|
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
static PyGetSetDef Commit_getseters[] = {
|
static PyGetSetDef Commit_getseters[] = {
|
||||||
{"message_short", (getter)Commit_get_message_short, NULL, "short message",
|
{"message_short", (getter)Commit_get_message_short, NULL, "short message",
|
||||||
NULL},
|
NULL},
|
||||||
@ -655,6 +679,8 @@ static PyGetSetDef Commit_getseters[] = {
|
|||||||
(setter)Commit_set_committer, "committer", NULL},
|
(setter)Commit_set_committer, "committer", NULL},
|
||||||
{"author", (getter)Commit_get_author,
|
{"author", (getter)Commit_get_author,
|
||||||
(setter)Commit_set_author, "author", NULL},
|
(setter)Commit_set_author, "author", NULL},
|
||||||
|
{"parents", (getter)Commit_get_parents, NULL, "parents of this commit",
|
||||||
|
NULL},
|
||||||
{NULL}
|
{NULL}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -42,6 +42,10 @@ class CommitTest(utils.BareRepoTestCase):
|
|||||||
def test_read_commit(self):
|
def test_read_commit(self):
|
||||||
commit = self.repo[COMMIT_SHA]
|
commit = self.repo[COMMIT_SHA]
|
||||||
self.assertEqual(COMMIT_SHA, commit.sha)
|
self.assertEqual(COMMIT_SHA, commit.sha)
|
||||||
|
parents = commit.parents
|
||||||
|
self.assertEqual(1, len(parents))
|
||||||
|
self.assertEqual('c2792cfa289ae6321ecf2cd5806c2194b0fd070c',
|
||||||
|
parents[0].sha)
|
||||||
self.assertEqual('Second test data commit.', commit.message_short)
|
self.assertEqual('Second test data commit.', commit.message_short)
|
||||||
self.assertEqual(('Second test data commit.\n\n'
|
self.assertEqual(('Second test data commit.\n\n'
|
||||||
'This commit has some additional text.\n'),
|
'This commit has some additional text.\n'),
|
||||||
|
Loading…
x
Reference in New Issue
Block a user