Как получить последний коммит из HEAD в репозитории git с использованием libgit2?

Поскольку нет примера копирования-вставки для получения последнего коммита с libgit2 Я думал, что я должен добавить один. Примеры в libgit2 широко используют git_oid_fromstr()

Не забывайте, что в настоящее время libgit2 находится в полной разработке (март 2013 года), поэтому посмотрите официальную документацию и исходный код, так как новые функции добавляются ежедневно:

1

Решение

git_commit * getLastCommit ( git_repository * repo )
{
int rc;
git_commit * commit = NULL; /* the result */
git_oid oid_parent_commit;  /* the SHA1 for last commit */

/* resolve HEAD into a SHA1 */
rc = git_reference_name_to_id( &oid_parent_commit, repo, "HEAD" );
if ( rc == 0 )
{
/* get the actual commit structure */
rc = git_commit_lookup( &commit, repo, &oid_parent_commit );
if ( rc == 0 )
{
return commit;
}
}
return NULL;
}

Вам нужно будет позвонить git_commit_free() как только вы закончите с этим.

5

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]