]> git.ipfire.org Git - thirdparty/git.git/blobdiff - midx.c
Merge branch 'tb/midx-no-bitmap-for-no-objects'
[thirdparty/git.git] / midx.c
diff --git a/midx.c b/midx.c
index 6e6cb0eb0494f543f4e2ea2e4fd5521950776f09..865170bad05a04f15d051fc871529022467dc6f8 100644 (file)
--- a/midx.c
+++ b/midx.c
@@ -1077,6 +1077,9 @@ static int write_midx_bitmap(char *midx_name, unsigned char *midx_hash,
        char *bitmap_name = xstrfmt("%s-%s.bitmap", midx_name, hash_to_hex(midx_hash));
        int ret;
 
+       if (!ctx->entries_nr)
+               BUG("cannot write a bitmap without any objects");
+
        if (flags & MIDX_WRITE_BITMAP_HASH_CACHE)
                options |= BITMAP_OPT_HASH_CACHE;
 
@@ -1401,6 +1404,12 @@ static int write_midx_internal(const char *object_dir,
                goto cleanup;
        }
 
+       if (!ctx.entries_nr) {
+               if (flags & MIDX_WRITE_BITMAP)
+                       warning(_("refusing to write multi-pack .bitmap without any objects"));
+               flags &= ~(MIDX_WRITE_REV_INDEX | MIDX_WRITE_BITMAP);
+       }
+
        cf = init_chunkfile(f);
 
        add_chunk(cf, MIDX_CHUNKID_PACKNAMES, pack_name_concat_len,