From 9d49a43c718d0749231ac54adf4b72775cc40354 Mon Sep 17 00:00:00 2001 From: Edward Thomson Date: Mon, 12 Jun 2017 12:01:10 +0100 Subject: [PATCH] repository_item_path: return ENOTFOUND when appropriate Disambiguate error values: return `GIT_ENOTFOUND` when the item cannot exist in the repository (perhaps because the repository is inmemory or otherwise not backed by a filesystem), return `-1` when there is a hard failure. --- include/git2/repository.h | 4 ++-- src/repository.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/include/git2/repository.h b/include/git2/repository.h index a396a5409..8aac0b3f7 100644 --- a/include/git2/repository.h +++ b/include/git2/repository.h @@ -433,12 +433,12 @@ typedef enum { * item. It will thereby honor things like the repository's * common directory, gitdir, etc. In case a file path cannot * exist for a given item (e.g. the working directory of a bare - * repository), an error is returned. + * repository), GIT_ENOTFOUND is returned. * * @param out Buffer to store the path at * @param repo Repository to get path for * @param item The repository item for which to retrieve the path - * @return 0 on success, otherwise a negative value + * @return 0, GIT_ENOTFOUND if the path cannot exist or an error code */ GIT_EXTERN(int) git_repository_item_path(git_buf *out, git_repository *repo, git_repository_item_t item); diff --git a/src/repository.c b/src/repository.c index 9729d3197..27553ad0a 100644 --- a/src/repository.c +++ b/src/repository.c @@ -2272,7 +2272,7 @@ int git_repository_item_path(git_buf *out, git_repository *repo, git_repository_ if (parent == NULL) { giterr_set(GITERR_INVALID, "path cannot exist in repository"); - return -1; + return GIT_ENOTFOUND; } if (git_buf_sets(out, parent) < 0)