summaryrefslogtreecommitdiff
path: root/src/libgit2/repository.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/libgit2/repository.c')
-rw-r--r--src/libgit2/repository.c18
1 files changed, 13 insertions, 5 deletions
diff --git a/src/libgit2/repository.c b/src/libgit2/repository.c
index d9bc537fe..bc2aba324 100644
--- a/src/libgit2/repository.c
+++ b/src/libgit2/repository.c
@@ -3341,12 +3341,20 @@ int git_repository_state_cleanup(git_repository *repo)
}
int git_repository__shallow_roots(git_array_oid_t *out, git_repository *repo) {
- int error =0;
- if (!repo->shallow_grafts)
- load_grafts(repo);
+ int error = 0;
+
+ if (!repo->shallow_grafts && (error = load_grafts(repo)) < 0)
+ return error;
+
+ if ((error = git_grafts_refresh(repo->shallow_grafts)) < 0) {
+ return error;
+ }
- git_grafts_refresh(repo->shallow_grafts);
- return git_grafts_get_oids(out, repo->shallow_grafts);
+ if ((error = git_grafts_get_oids(out, repo->shallow_grafts)) < 0) {
+ return error;
+ }
+
+ return 0;
}
int git_repository__shallow_roots_write(git_repository *repo, git_array_oid_t roots)