]> git.proxmox.com Git - libgit2.git/commitdiff
repository_item_path: return ENOTFOUND when appropriate
authorEdward Thomson <ethomson@edwardthomson.com>
Mon, 12 Jun 2017 11:01:10 +0000 (12:01 +0100)
committerEdward Thomson <ethomson@edwardthomson.com>
Mon, 12 Jun 2017 15:51:04 +0000 (16:51 +0100)
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
src/repository.c

index a396a5409ddd8e0f611910bfb7033048c199240a..8aac0b3f754d1cf2cf414a90c6e5b2c7002143f6 100644 (file)
@@ -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);
 
index 9729d3197952ab6caf878ffb9bdc700a6c1f27f3..27553ad0aae46282e455a1ad7ffe916eb4351176 100644 (file)
@@ -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)