Taylor Blau [off-list ref] 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?