On Mon, Oct 17, 2022 at 02:02:53PM -0400, Jeff King wrote: > > + if (unlink(path.buf) && errno != ENOENT) > > + die_errno(_("could not remove stale bitmap: %s"), > > + path.buf); > > We could downgrade this to a warning, since there is no downside to > retaining those files (aside from wasted space). In > remove_redundant_pack(), we call into unlink_pack_path(), which just > ignores unlink errors (though arguably it should at least warn). I think that downgrading this to `warning_errno()` is appropriate. I'll make that change locally and send a new version. I think a good separate topic is teaching `remove_redundant_pack()` to emit warnings for non-ENOENT errors, too. But I'll leave that for another day :-). > > @@ -1059,10 +1088,15 @@ int cmd_repack(int argc, const char **argv, const char *prefix) > > refs_snapshot ? get_tempfile_path(refs_snapshot) : NULL, > > show_progress, write_bitmaps > 0); > > > > + if (ret) { > > + string_list_clear(&include, 0); > > + return ret; > > + } > > + > > + if (write_bitmaps) > > + remove_redundant_bitmaps(&include, packdir); > > + > > string_list_clear(&include, 0); > > - > > - if (ret) > > - return ret; > > } > > You could avoid having to repeat the string-list cleanup here by > structuring it like: > > if (!ret && write_bitmaps) > remove_redundant_bitmaps(&include, packdir); > > /* as before, clear string list and possibly return ret */ > > Since it's only one line, it's not that big a deal, but it simplifies > the flow. > > It's correct either way, of course. One thing I did have to do while > reviewing this was look at this hunk in place. The context omits that > this is in the "if (write_midx)" conditional, which is of course very > important. ;) Great suggestion, thanks. I'll apply it locally and send a reroll now. Thanks, Taylor