]> git.ipfire.org Git - thirdparty/git.git/commitdiff
midx: keep track of the checksum
authorTaylor Blau <me@ttaylorr.com>
Tue, 30 Mar 2021 15:04:17 +0000 (11:04 -0400)
committerJunio C Hamano <gitster@pobox.com>
Thu, 1 Apr 2021 20:07:37 +0000 (13:07 -0700)
write_midx_internal() uses a hashfile to write the multi-pack index, but
discards its checksum. This makes sense, since nothing that takes place
after writing the MIDX cares about its checksum.

That is about to change in a subsequent patch, when the optional
reverse index corresponding to the MIDX will want to include the MIDX's
checksum.

Store the checksum of the MIDX in preparation for that.

Signed-off-by: Taylor Blau <me@ttaylorr.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
midx.c

diff --git a/midx.c b/midx.c
index 25bfb335cac16d4861a9ab1671f362981e8bc58e..7af51456131b96235477ee6eba0d5fef53ed59f9 100644 (file)
--- a/midx.c
+++ b/midx.c
@@ -811,6 +811,7 @@ static int write_midx_internal(const char *object_dir, struct multi_pack_index *
                               unsigned flags)
 {
        char *midx_name;
+       unsigned char midx_hash[GIT_MAX_RAWSZ];
        uint32_t i;
        struct hashfile *f = NULL;
        struct lock_file lk;
@@ -987,7 +988,7 @@ static int write_midx_internal(const char *object_dir, struct multi_pack_index *
        write_midx_header(f, get_num_chunks(cf), ctx.nr - dropped_packs);
        write_chunkfile(cf, &ctx);
 
-       finalize_hashfile(f, NULL, CSUM_FSYNC | CSUM_HASH_IN_STREAM);
+       finalize_hashfile(f, midx_hash, CSUM_FSYNC | CSUM_HASH_IN_STREAM);
        free_chunkfile(cf);
        commit_lock_file(&lk);