Skip to content

Commit 8703120

Browse files
dschojamill
authored andcommitted
mingw: change core.fsyncObjectFiles = 1 by default
From the documentation of said setting: This boolean will enable fsync() when writing object files. This is a total waste of time and effort on a filesystem that orders data writes properly, but can be useful for filesystems that do not use journalling (traditional UNIX filesystems) or that only journal metadata and not file contents (OS X’s HFS+, or Linux ext3 with "data=writeback"). The most common file system on Windows (NTFS) does not guarantee that order, therefore a sudden loss of power (or any other event causing an unclean shutdown) would cause corrupt files (i.e. files filled with NULs). Therefore we need to change the default. Note that the documentation makes it sound as if this causes really bad performance. In reality, writing loose objects is something that is done only rarely, and only a handful of files at a time. Signed-off-by: Johannes Schindelin <[email protected]>
1 parent 4d615d6 commit 8703120

File tree

1 file changed

+2
-0
lines changed

1 file changed

+2
-0
lines changed

compat/mingw.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3114,6 +3114,7 @@ int msc_startup(int argc, wchar_t **w_argv, wchar_t **w_env)
31143114
_CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF);
31153115
#endif
31163116

3117+
fsync_object_files = 1;
31173118
maybe_redirect_std_handles();
31183119

31193120
/* determine size of argv conversion buffer */
@@ -3180,6 +3181,7 @@ void mingw_startup(void)
31803181
wchar_t **wenv, **wargv;
31813182
_startupinfo si;
31823183

3184+
fsync_object_files = 1;
31833185
maybe_redirect_std_handles();
31843186

31853187
/* get wide char arguments and environment */

0 commit comments

Comments
 (0)