On 5/9/2019 12:49 AM, Junio C Hamano wrote: > Ævar Arnfjörð Bjarmason <avarab@xxxxxxxxx> writes: > >> With commit-graph-<HASH> all these unlink() race conditions go away, >> partial reads due to concurrent graph writing becomes a non-issue (we'd >> just leave the old files, "gc" deals with them later..), no need to >> carefully fsync() files/dirs etc as we need to carefully juggle N and >> N+1 files. > > The above would give a nice course correction to be in line with the > rest of the system, like how split index knows about and chains to > its base. Thanks for a dose of sanity. I'm working on a detailed response to Ævar's ideas, to be sure we are talking about the same thing, because the original motivation for the commit-graph format v2 was to allow the 'commit-graph' file to point to a chain of base files by a list of hashes (like the split index does). The current proposal was created in response to an unwillingness to break the file format for the 'commit-graph' file. -Stolee