pack-write: skip *.rev work when not writing *.rev
commit8fe8bae9d28e2b02ceb482ab89ea88bb20556f1d
authorÆvar Arnfjörð Bjarmason <avarab@gmail.com>
Wed, 8 Sep 2021 01:08:03 +0000 (8 03:08 +0200)
committerJunio C Hamano <gitster@pobox.com>
Wed, 8 Sep 2021 05:04:03 +0000 (7 22:04 -0700)
treebfc00915ffb921352658d2ac9312a9d695bfcac5
parentebf3c04b262aa27fbb97f8a0156c2347fecafafb
pack-write: skip *.rev work when not writing *.rev

Fix a performance regression introduced in a587b5a786 (pack-write.c:
extract 'write_rev_file_order', 2021-03-30) and stop needlessly
allocating the "pack_order" array and sorting it with
"pack_order_cmp()", only to throw that work away when we discover that
we're not writing *.rev files after all.

This redundant work was not present in the original version of this
code added in 8ef50d9958 (pack-write.c: prepare to write 'pack-*.rev'
files, 2021-01-25). There we'd call write_rev_file() from
e.g. finish_tmp_packfile(), but we'd "return NULL" early in
write_rev_file() if not doing a "WRITE_REV" or "WRITE_REV_VERIFY".

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
pack-write.c