So these four patches end up adding support for conditionally enabling fsync() on loose object creation in the .gitconfig file with something like [core] FsyncObjectFiles = true which can be useful on filesystems that don't already guarantee data consistency for other reasons (whether due to ordered writes or due to full data journalling). Actually, just the last one adds the fairly trivial feature, the three first patches are just cleanups of the config parsing that I needed in order to not gouge my eyes out when looking at the code. The config file parser is kind of ad-hoc and people have added more and more options to it without ever trying to clean it up, and I refuse to do that. The full patch-series is Split up default "core" config parsing into helper routine Split up default "user" config parsing into helper routine Split up default "i18n" and "branch" config parsing into helper routines Add config option to enable 'fsync()' of object files resulting in the following diffstat: Documentation/config.txt | 8 ++++ cache.h | 1 + config.c | 82 ++++++++++++++++++++++++++++++++++----------- environment.c | 1 + sha1_file.c | 3 +- 5 files changed, 74 insertions(+), 21 deletions(-) and the patches themselves will follow.. Linus -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html