summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEdward Thomson <ethomson@edwardthomson.com>2023-02-27 21:39:01 +0000
committerEdward Thomson <ethomson@edwardthomson.com>2023-02-27 21:54:59 +0000
commitc4523c6c66ee0ff731be374e153c96bc635cf25b (patch)
tree8a3833ef0b0d74616f1956308f84c76940d18c6e
parent44d3372e4097d01a279fa51bbc2e0c8672ef25f7 (diff)
downloadlibgit2-c4523c6c66ee0ff731be374e153c96bc635cf25b.tar.gz
odb: add back git_odb_backend_loose
`git_odb_backend_loose` was erroneously removed during a refactoring; add it back.
-rw-r--r--src/libgit2/odb_loose.c34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/libgit2/odb_loose.c b/src/libgit2/odb_loose.c
index d1abbe233..51195d357 100644
--- a/src/libgit2/odb_loose.c
+++ b/src/libgit2/odb_loose.c
@@ -1204,3 +1204,37 @@ int git_odb__backend_loose(
*backend_out = (git_odb_backend *)backend;
return 0;
}
+
+
+#ifdef GIT_EXPERIMENTAL_SHA256
+int git_odb_backend_loose(
+ git_odb_backend **backend_out,
+ const char *objects_dir,
+ git_odb_backend_loose_options *opts)
+{
+ return git_odb__backend_loose(backend_out, objects_dir, opts);
+}
+#else
+int git_odb_backend_loose(
+ git_odb_backend **backend_out,
+ const char *objects_dir,
+ int compression_level,
+ int do_fsync,
+ unsigned int dir_mode,
+ unsigned int file_mode)
+{
+ git_odb_backend_loose_flag_t flags = 0;
+ git_odb_backend_loose_options opts = GIT_ODB_BACKEND_LOOSE_OPTIONS_INIT;
+
+ if (do_fsync)
+ flags |= GIT_ODB_BACKEND_LOOSE_FSYNC;
+
+ opts.flags = flags;
+ opts.compression_level = compression_level;
+ opts.dir_mode = dir_mode;
+ opts.file_mode = file_mode;
+ opts.oid_type = GIT_OID_DEFAULT;
+
+ return git_odb__backend_loose(backend_out, objects_dir, &opts);
+}
+#endif