From: Junio C Hamano Date: Tue, 24 Apr 2012 01:51:48 GMT Subject: Re: Potential problem in git-add may corrupt the index file Message-ID: In-Reply-To: Gang Hu writes: > If a crash happens after the rename(), the data may have not been > completely flushed into the index file, so the user may face an empty > or corrupted index file. Yeah, probably we should add fsync_or_die() at the end of write_index() in read-cache.c, possibly protect it with fsync_object_files just like we do in close_sha1_file() in sha1_file.c for loose object files. I think the real fix would be to update the write_index() codepath to use the csum-file API, though. Then sha1close() will give us the fsync behaviour for free.