From 8b9674bb6635705bb3f2cb78af6d0ad1d8a45135 Mon Sep 17 00:00:00 2001 From: James Fargher Date: Tue, 18 Jan 2022 09:58:12 +1300 Subject: [PATCH] Add EnableFsyncGitDir to enable synchronized writes to the gitdir This adds support for the GIT_OPT_ENABLE_FSYNC_GITDIR option in libgit2. --- settings.go | 8 ++++++++ settings_test.go | 8 ++++++++ 2 files changed, 16 insertions(+) diff --git a/settings.go b/settings.go index 9325618..7f9b5b1 100644 --- a/settings.go +++ b/settings.go @@ -101,6 +101,14 @@ func EnableStrictHashVerification(enabled bool) error { } } +func EnableFsyncGitDir(enabled bool) error { + if enabled { + return setSizet(C.GIT_OPT_ENABLE_FSYNC_GITDIR, 1) + } else { + return setSizet(C.GIT_OPT_ENABLE_FSYNC_GITDIR, 0) + } +} + func CachedMemory() (current int, allowed int, err error) { return getSizetSizet(C.GIT_OPT_GET_CACHED_MEMORY) } diff --git a/settings_test.go b/settings_test.go index 47eb711..e3761d4 100644 --- a/settings_test.go +++ b/settings_test.go @@ -65,6 +65,14 @@ func TestEnableStrictHashVerification(t *testing.T) { checkFatal(t, err) } +func TestEnableFsyncGitDir(t *testing.T) { + err := EnableFsyncGitDir(false) + checkFatal(t, err) + + err = EnableFsyncGitDir(true) + checkFatal(t, err) +} + func TestCachedMemory(t *testing.T) { current, allowed, err := CachedMemory() checkFatal(t, err) -- 2.45.2