Taylor Blau <me@xxxxxxxxxxxx> writes: > ... It's likely we were using > finalize_object_file() instead of a pure rename() because the former > also adjusts shared permissions. I thought the primary reason why we use finalize was because we ignore EEXIST (and the assumption is that the files with the same contents get the same name computed from their contents). > tmp_file = write_rev_file_order(NULL, ctx->pack_order, ctx->entries_nr, > midx_hash, WRITE_REV); > > - if (finalize_object_file(tmp_file, buf.buf)) > + if (rename(tmp_file, buf.buf)) > die(_("cannot store reverse index file")); Doesn't your new code die with it if buf.buf names an existing file?