diff options
| author | nulltoken <emeric.fermas@gmail.com> | 2011-08-08 13:40:17 +0200 |
|---|---|---|
| committer | Vicent Marti <tanoku@gmail.com> | 2011-09-15 01:13:50 +0200 |
| commit | 3601c4bfce3df04ebfc8668e5db531ded39280a9 (patch) | |
| tree | 4fa330a2dec46c10f296b6f95838c13dfc11ec9b /src/repository.c | |
| parent | a9daa9bc166b1d6f7c8af78d406761c942ab47e4 (diff) | |
| download | libgit2-3601c4bfce3df04ebfc8668e5db531ded39280a9.tar.gz | |
repository: Add git_repository_head()
Diffstat (limited to 'src/repository.c')
| -rw-r--r-- | src/repository.c | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/src/repository.c b/src/repository.c index 1b06c4f03..cbd73fe15 100644 --- a/src/repository.c +++ b/src/repository.c @@ -729,19 +729,31 @@ int git_repository_head_detached(git_repository *repo) return 1; } -int git_repository_head_orphan(git_repository *repo) +int git_repository_head(git_reference **head_out, git_repository *repo) { git_reference *ref; int error; + *head_out = NULL; + error = git_reference_lookup(&ref, repo, GIT_HEAD_FILE); if (error < GIT_SUCCESS) - return error; - - if (git_reference_type(ref) == GIT_REF_OID) - return 0; + return git__rethrow(GIT_ENOTAREPO, "Failed to locate the HEAD"); error = git_reference_resolve(&ref, ref); + if (error < GIT_SUCCESS) + return git__rethrow(error, "Failed to resolve the HEAD"); + + *head_out = ref; + return GIT_SUCCESS; +} + +int git_repository_head_orphan(git_repository *repo) +{ + git_reference *ref; + int error; + + error = git_repository_head(&ref, repo); return error == GIT_ENOTFOUND ? 1 : error; } |
