diff options
author | Vicent Martà <tanoku@gmail.com> | 2012-05-05 14:22:06 -0700 |
---|---|---|
committer | Vicent Martà <tanoku@gmail.com> | 2012-05-05 14:22:06 -0700 |
commit | 4ef14af93517b3842bc0dfa24147cf10dd029582 (patch) | |
tree | 88f90fa8c9d903f072a2b1c647c51a9899e520c7 /src/repository.c | |
parent | f95e8cc07c85034f737872455fce2895186be19d (diff) | |
parent | 282283acc65bab9de231a2b3dc489eb171d5f1cf (diff) | |
download | libgit2-development-merge.tar.gz |
Merge pull request #664 from arrbee/attrs-from-indexdevelopment-merge
Support git attrs from index (and bare repo)
Diffstat (limited to 'src/repository.c')
-rw-r--r-- | src/repository.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/repository.c b/src/repository.c index cfabee420..d4de38104 100644 --- a/src/repository.c +++ b/src/repository.c @@ -862,3 +862,23 @@ int git_repository_is_bare(git_repository *repo) assert(repo); return repo->is_bare; } + +int git_repository_head_tree(git_tree **tree, git_repository *repo) +{ + git_oid head_oid; + git_object *obj = NULL; + + if (git_reference_name_to_oid(&head_oid, repo, GIT_HEAD_FILE) < 0) { + /* cannot resolve HEAD - probably brand new repo */ + giterr_clear(); + *tree = NULL; + return 0; + } + + if (git_object_lookup(&obj, repo, &head_oid, GIT_OBJ_ANY) < 0 || + git_object__resolve_to_type(&obj, GIT_OBJ_TREE) < 0) + return -1; + + *tree = (git_tree *)obj; + return 0; +} |