diff options
| author | Vicent Marti <tanoku@gmail.com> | 2011-09-29 15:34:17 +0200 |
|---|---|---|
| committer | Vicent Marti <tanoku@gmail.com> | 2011-09-29 15:34:17 +0200 |
| commit | 8af4d074cc3bcc8ea63d75f147be892e4925075b (patch) | |
| tree | 196374627959e6a39ab3effff0ebac4664b64401 /src | |
| parent | 72bdfdbc7cb868b222127d1592d35a19e47ceb05 (diff) | |
| download | libgit2-8af4d074cc3bcc8ea63d75f147be892e4925075b.tar.gz | |
odb: Let users decide compression level for the loose ODB
Diffstat (limited to 'src')
| -rw-r--r-- | src/odb.c | 2 | ||||
| -rw-r--r-- | src/odb_loose.c | 13 |
2 files changed, 11 insertions, 4 deletions
@@ -321,7 +321,7 @@ static int add_default_backends(git_odb *db, const char *objects_dir, int as_alt int error; /* add the loose object backend */ - error = git_odb_backend_loose(&loose, objects_dir); + error = git_odb_backend_loose(&loose, objects_dir, -1, 0); if (error < GIT_SUCCESS) return error; diff --git a/src/odb_loose.c b/src/odb_loose.c index 3ca46d1b5..4b2216bfd 100644 --- a/src/odb_loose.c +++ b/src/odb_loose.c @@ -807,7 +807,11 @@ static void loose_backend__free(git_odb_backend *_backend) free(backend); } -int git_odb_backend_loose(git_odb_backend **backend_out, const char *objects_dir) +int git_odb_backend_loose( + git_odb_backend **backend_out, + const char *objects_dir, + int compression_level, + int do_fsync) { loose_backend *backend; @@ -821,8 +825,11 @@ int git_odb_backend_loose(git_odb_backend **backend_out, const char *objects_dir return GIT_ENOMEM; } - backend->object_zlib_level = Z_BEST_SPEED; - backend->fsync_object_files = 0; + if (compression_level < 0) + compression_level = Z_BEST_SPEED; + + backend->object_zlib_level = compression_level; + backend->fsync_object_files = do_fsync; backend->parent.read = &loose_backend__read; backend->parent.write = &loose_backend__write; |
