Merge branch 'jk/pack-objects-no-bitmap-when-splitting' into maint
authorJunio C Hamano <gitster@pobox.com>
Wed, 29 Oct 2014 17:35:17 +0000 (10:35 -0700)
committerJunio C Hamano <gitster@pobox.com>
Wed, 29 Oct 2014 17:35:17 +0000 (10:35 -0700)
* jk/pack-objects-no-bitmap-when-splitting:
pack-objects: turn off bitmaps when we split packs

1  2 
builtin/pack-objects.c
t/t5310-pack-bitmaps.sh
diff --combined builtin/pack-objects.c
index b59f5d895e38bdb96d19b5fc5061669facdf22cc,a6c91fa0022220fec5ce3e4004a0869ef93a9793..3eb86e0693b3f9adb6680645151f842dffa7a4f9
@@@ -812,6 -812,7 +812,7 @@@ static void write_pack_file(void
                        fixup_pack_header_footer(fd, sha1, pack_tmp_name,
                                                 nr_written, sha1, offset);
                        close(fd);
+                       write_bitmap_index = 0;
                }
  
                if (!pack_to_stdout) {
@@@ -2214,6 -2215,10 +2215,6 @@@ static int git_pack_config(const char *
                cache_max_small_delta_size = git_config_int(k, v);
                return 0;
        }
 -      if (!strcmp(k, "pack.writebitmaps")) {
 -              write_bitmap_index = git_config_bool(k, v);
 -              return 0;
 -      }
        if (!strcmp(k, "pack.writebitmaphashcache")) {
                if (git_config_bool(k, v))
                        write_bitmap_options |= BITMAP_OPT_HASH_CACHE;
@@@ -2494,7 -2499,6 +2495,7 @@@ static void get_object_list(int ac, con
                                if (get_sha1_hex(line + 10, sha1))
                                        die("not an SHA-1 '%s'", line + 10);
                                register_shallow(sha1);
 +                              use_bitmap_index = 0;
                                continue;
                        }
                        die("not a rev '%s'", line);
diff --combined t/t5310-pack-bitmaps.sh
index 0580258c91a07aabe2773cce04df47d3c183b425,2366fcffa77d3eada0254eb933596e69ba227113..6003490192880802d866ec3788facaf4dcf17147
@@@ -18,7 -18,7 +18,7 @@@ test_expect_success 'setup repo with mo
        git checkout master &&
        blob=$(echo tagged-blob | git hash-object -w --stdin) &&
        git tag tagged-blob $blob &&
 -      git config pack.writebitmaps true &&
 +      git config repack.writebitmaps true &&
        git config pack.writebitmaphashcache true
  '
  
@@@ -170,4 -170,13 +170,13 @@@ test_expect_success JGIT 'jgit can rea
        )
  '
  
+ test_expect_success 'splitting packs does not generate bogus bitmaps' '
+       test-genrandom foo $((1024 * 1024)) >rand &&
+       git add rand &&
+       git commit -m "commit with big file" &&
+       git -c pack.packSizeLimit=500k repack -adb &&
+       git init --bare no-bitmaps.git &&
+       git -C no-bitmaps.git fetch .. HEAD
+ '
  test_done