diff options
author | Edward Thomson <ethomson@edwardthomson.com> | 2017-06-08 22:54:30 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-06-08 22:54:30 +0200 |
commit | e476d5288cd8195063f775418efd7b7154880beb (patch) | |
tree | 8bb883b7d787d5e28d2f68c08b22dc311d0e258e | |
parent | 458cea5c5b820f9766cb5ba4c3d89830592d655b (diff) | |
parent | 6c23704df5d19239f8c3d6f69da62bdbe1cf287d (diff) | |
download | libgit2-e476d5288cd8195063f775418efd7b7154880beb.tar.gz |
Merge pull request #4259 from pks-t/pks/fsync-option-rename
settings: rename `GIT_OPT_ENABLE_SYNCHRONOUS_OBJECT_CREATION`
-rw-r--r-- | include/git2/common.h | 6 | ||||
-rw-r--r-- | src/indexer.c | 2 | ||||
-rw-r--r-- | src/object.c | 1 | ||||
-rw-r--r-- | src/object.h | 1 | ||||
-rw-r--r-- | src/odb_loose.c | 2 | ||||
-rw-r--r-- | src/refdb_fs.c | 2 | ||||
-rw-r--r-- | src/repository.c | 2 | ||||
-rw-r--r-- | src/repository.h | 2 | ||||
-rw-r--r-- | src/settings.c | 4 | ||||
-rw-r--r-- | tests/odb/loose.c | 4 | ||||
-rw-r--r-- | tests/pack/packbuilder.c | 4 | ||||
-rw-r--r-- | tests/refs/create.c | 4 |
12 files changed, 18 insertions, 16 deletions
diff --git a/include/git2/common.h b/include/git2/common.h index d83e8c3a0..f65cfdd01 100644 --- a/include/git2/common.h +++ b/include/git2/common.h @@ -179,7 +179,7 @@ typedef enum { GIT_OPT_SET_SSL_CIPHERS, GIT_OPT_GET_USER_AGENT, GIT_OPT_ENABLE_OFS_DELTA, - GIT_OPT_ENABLE_SYNCHRONOUS_OBJECT_CREATION, + GIT_OPT_ENABLE_FSYNC_GITDIR, GIT_OPT_GET_WINDOWS_SHAREMODE, GIT_OPT_SET_WINDOWS_SHAREMODE, GIT_OPT_ENABLE_STRICT_HASH_VERIFICATION, @@ -331,9 +331,9 @@ typedef enum { * > Packfiles containing offset deltas can still be read. * > This defaults to enabled. * - * * opts(GIT_OPT_ENABLE_SYNCHRONOUS_OBJECT_CREATION, int enabled) + * * opts(GIT_OPT_ENABLE_FSYNC_GITDIR, int enabled) * - * > Enable synchronized writes of new objects using `fsync` + * > Enable synchronized writes of files in the gitdir using `fsync` * > (or the platform equivalent) to ensure that new object data * > is written to permanent storage, not simply cached. This * > defaults to disabled. diff --git a/src/indexer.c b/src/indexer.c index ce67240ce..68cd205e0 100644 --- a/src/indexer.c +++ b/src/indexer.c @@ -125,7 +125,7 @@ int git_indexer_new( git_hash_ctx_init(&idx->hash_ctx); git_hash_ctx_init(&idx->trailer); - if (git_object__synchronous_writing) + if (git_repository__fsync_gitdir) idx->do_fsync = 1; error = git_buf_joinpath(&path, prefix, suff); diff --git a/src/object.c b/src/object.c index bd87c9310..2da36a2ee 100644 --- a/src/object.c +++ b/src/object.c @@ -16,7 +16,6 @@ #include "tag.h" bool git_object__strict_input_validation = true; -bool git_object__synchronous_writing = false; typedef struct { const char *str; /* type name string */ diff --git a/src/object.h b/src/object.h index 13117e4c3..dd227d16d 100644 --- a/src/object.h +++ b/src/object.h @@ -10,7 +10,6 @@ #include "repository.h" extern bool git_object__strict_input_validation; -extern bool git_object__synchronous_writing; /** Base git object for inheritance */ struct git_object { diff --git a/src/odb_loose.c b/src/odb_loose.c index a97ac25eb..99fdcb44f 100644 --- a/src/odb_loose.c +++ b/src/odb_loose.c @@ -850,7 +850,7 @@ static int filebuf_flags(loose_backend *backend) int flags = GIT_FILEBUF_TEMPORARY | (backend->object_zlib_level << GIT_FILEBUF_DEFLATE_SHIFT); - if (backend->fsync_object_files || git_object__synchronous_writing) + if (backend->fsync_object_files || git_repository__fsync_gitdir) flags |= GIT_FILEBUF_FSYNC; return flags; diff --git a/src/refdb_fs.c b/src/refdb_fs.c index 988a14b85..eb135dc01 100644 --- a/src/refdb_fs.c +++ b/src/refdb_fs.c @@ -2032,7 +2032,7 @@ int git_refdb_backend_fs( backend->direach_flags |= GIT_PATH_DIR_PRECOMPOSE_UNICODE; } if ((!git_repository__cvar(&t, backend->repo, GIT_CVAR_FSYNCOBJECTFILES) && t) || - git_object__synchronous_writing) + git_repository__fsync_gitdir) backend->fsync = 1; backend->parent.exists = &refdb_fs_backend__exists; diff --git a/src/repository.c b/src/repository.c index d0a38cc6a..c7b40fdf7 100644 --- a/src/repository.c +++ b/src/repository.c @@ -36,6 +36,8 @@ # include "win32/w32_util.h" #endif +bool git_repository__fsync_gitdir = false; + static const struct { git_repository_item_t parent; const char *name; diff --git a/src/repository.h b/src/repository.h index f922d00f2..52f9ec260 100644 --- a/src/repository.h +++ b/src/repository.h @@ -31,6 +31,8 @@ /* Default DOS-compatible 8.3 "short name" for a git repository, "GIT~1" */ #define GIT_DIR_SHORTNAME "GIT~1" +extern bool git_repository__fsync_gitdir; + /** Cvar cache identifiers */ typedef enum { GIT_CVAR_AUTO_CRLF = 0, /* core.autocrlf */ diff --git a/src/settings.c b/src/settings.c index 25c5aae6d..52b861ba0 100644 --- a/src/settings.c +++ b/src/settings.c @@ -228,8 +228,8 @@ int git_libgit2_opts(int key, ...) git_smart__ofs_delta_enabled = (va_arg(ap, int) != 0); break; - case GIT_OPT_ENABLE_SYNCHRONOUS_OBJECT_CREATION: - git_object__synchronous_writing = (va_arg(ap, int) != 0); + case GIT_OPT_ENABLE_FSYNC_GITDIR: + git_repository__fsync_gitdir = (va_arg(ap, int) != 0); break; case GIT_OPT_GET_WINDOWS_SHAREMODE: diff --git a/tests/odb/loose.c b/tests/odb/loose.c index dd686aa01..2e24d6723 100644 --- a/tests/odb/loose.c +++ b/tests/odb/loose.c @@ -63,7 +63,7 @@ void test_odb_loose__initialize(void) void test_odb_loose__cleanup(void) { - cl_git_pass(git_libgit2_opts(GIT_OPT_ENABLE_SYNCHRONOUS_OBJECT_CREATION, 0)); + cl_git_pass(git_libgit2_opts(GIT_OPT_ENABLE_FSYNC_GITDIR, 0)); cl_fixture_cleanup("test-objects"); } @@ -181,7 +181,7 @@ void test_odb_loose__fsync_obeys_odb_option(void) void test_odb_loose__fsync_obeys_global_setting(void) { - cl_git_pass(git_libgit2_opts(GIT_OPT_ENABLE_SYNCHRONOUS_OBJECT_CREATION, 1)); + cl_git_pass(git_libgit2_opts(GIT_OPT_ENABLE_FSYNC_GITDIR, 1)); write_object_to_loose_odb(0); cl_assert(p_fsync__cnt > 0); } diff --git a/tests/pack/packbuilder.c b/tests/pack/packbuilder.c index 1d7becef7..9bea203d5 100644 --- a/tests/pack/packbuilder.c +++ b/tests/pack/packbuilder.c @@ -31,7 +31,7 @@ void test_pack_packbuilder__cleanup(void) git_oid *o; unsigned int i; - cl_git_pass(git_libgit2_opts(GIT_OPT_ENABLE_SYNCHRONOUS_OBJECT_CREATION, 0)); + cl_git_pass(git_libgit2_opts(GIT_OPT_ENABLE_FSYNC_GITDIR, 0)); if (_commits_is_initialized) { _commits_is_initialized = 0; @@ -209,7 +209,7 @@ static int expected_fsyncs = 4; void test_pack_packbuilder__fsync_global_setting(void) { - cl_git_pass(git_libgit2_opts(GIT_OPT_ENABLE_SYNCHRONOUS_OBJECT_CREATION, 1)); + cl_git_pass(git_libgit2_opts(GIT_OPT_ENABLE_FSYNC_GITDIR, 1)); p_fsync__cnt = 0; seed_packbuilder(); git_packbuilder_write(_packbuilder, ".", 0666, NULL, NULL); diff --git a/tests/refs/create.c b/tests/refs/create.c index 4ecc60565..469cddd1e 100644 --- a/tests/refs/create.c +++ b/tests/refs/create.c @@ -22,7 +22,7 @@ void test_refs_create__cleanup(void) cl_git_pass(git_libgit2_opts(GIT_OPT_ENABLE_STRICT_OBJECT_CREATION, 1)); cl_git_pass(git_libgit2_opts(GIT_OPT_ENABLE_STRICT_SYMBOLIC_REF_CREATION, 1)); - cl_git_pass(git_libgit2_opts(GIT_OPT_ENABLE_SYNCHRONOUS_OBJECT_CREATION, 0)); + cl_git_pass(git_libgit2_opts(GIT_OPT_ENABLE_FSYNC_GITDIR, 0)); } void test_refs_create__symbolic(void) @@ -347,7 +347,7 @@ void test_refs_create__fsyncs_when_global_opt_set(void) { size_t create_count, compress_count; - cl_git_pass(git_libgit2_opts(GIT_OPT_ENABLE_SYNCHRONOUS_OBJECT_CREATION, 1)); + cl_git_pass(git_libgit2_opts(GIT_OPT_ENABLE_FSYNC_GITDIR, 1)); count_fsyncs(&create_count, &compress_count); cl_assert_equal_i(expected_fsyncs_create, create_count); |