summaryrefslogtreecommitdiff
path: root/src/libgit2
diff options
context:
space:
mode:
Diffstat (limited to 'src/libgit2')
-rw-r--r--src/libgit2/repository.c24
-rw-r--r--src/libgit2/repository.h5
2 files changed, 26 insertions, 3 deletions
diff --git a/src/libgit2/repository.c b/src/libgit2/repository.c
index c45c58550..473f3b146 100644
--- a/src/libgit2/repository.c
+++ b/src/libgit2/repository.c
@@ -1145,21 +1145,39 @@ out:
return err;
}
-int git_repository_wrap_odb(git_repository **repo_out, git_odb *odb)
+int git_repository__wrap_odb(
+ git_repository **out,
+ git_odb *odb,
+ git_oid_t oid_type)
{
git_repository *repo;
repo = repository_alloc();
GIT_ERROR_CHECK_ALLOC(repo);
- repo->oid_type = GIT_OID_DEFAULT;
+ repo->oid_type = oid_type;
git_repository_set_odb(repo, odb);
- *repo_out = repo;
+ *out = repo;
return 0;
}
+#ifdef GIT_EXPERIMENTAL_SHA256
+int git_repository_wrap_odb(
+ git_repository **out,
+ git_odb *odb,
+ git_oid_t oid_type)
+{
+ return git_repository__wrap_odb(out, odb, oid_type);
+}
+#else
+int git_repository_wrap_odb(git_repository **out, git_odb *odb)
+{
+ return git_repository__wrap_odb(out, odb, GIT_OID_DEFAULT);
+}
+#endif
+
int git_repository_discover(
git_buf *out,
const char *start_path,
diff --git a/src/libgit2/repository.h b/src/libgit2/repository.h
index 9a36ef972..b2208b8a6 100644
--- a/src/libgit2/repository.h
+++ b/src/libgit2/repository.h
@@ -190,6 +190,11 @@ int git_repository_odb__weakptr(git_odb **out, git_repository *repo);
int git_repository_refdb__weakptr(git_refdb **out, git_repository *repo);
int git_repository_index__weakptr(git_index **out, git_repository *repo);
+int git_repository__wrap_odb(
+ git_repository **out,
+ git_odb *odb,
+ git_oid_t oid_type);
+
/*
* Configuration map cache
*