Merge branch 'jk/pack-bitmap'
Instead of dying when asked to (re)pack with the reachability bitmap when a bitmap cannot be built, just (re)pack without producing a bitmap in such a case, with a warning. * jk/pack-bitmap: pack-objects: turn off bitmaps when skipping objects
This commit is contained in:
@ -995,6 +995,10 @@ static void create_object_entry(const unsigned char *sha1,
|
|||||||
entry->no_try_delta = no_try_delta;
|
entry->no_try_delta = no_try_delta;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static const char no_closure_warning[] = N_(
|
||||||
|
"disabling bitmap writing, as some objects are not being packed"
|
||||||
|
);
|
||||||
|
|
||||||
static int add_object_entry(const unsigned char *sha1, enum object_type type,
|
static int add_object_entry(const unsigned char *sha1, enum object_type type,
|
||||||
const char *name, int exclude)
|
const char *name, int exclude)
|
||||||
{
|
{
|
||||||
@ -1005,8 +1009,14 @@ static int add_object_entry(const unsigned char *sha1, enum object_type type,
|
|||||||
if (have_duplicate_entry(sha1, exclude, &index_pos))
|
if (have_duplicate_entry(sha1, exclude, &index_pos))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
if (!want_object_in_pack(sha1, exclude, &found_pack, &found_offset))
|
if (!want_object_in_pack(sha1, exclude, &found_pack, &found_offset)) {
|
||||||
|
/* The pack is missing an object, so it will not have closure */
|
||||||
|
if (write_bitmap_index) {
|
||||||
|
warning(_(no_closure_warning));
|
||||||
|
write_bitmap_index = 0;
|
||||||
|
}
|
||||||
return 0;
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
create_object_entry(sha1, type, pack_name_hash(name),
|
create_object_entry(sha1, type, pack_name_hash(name),
|
||||||
exclude, name && no_try_delta(name),
|
exclude, name && no_try_delta(name),
|
||||||
|
@ -91,7 +91,10 @@ test_expect_success 'fetch (partial bitmap)' '
|
|||||||
|
|
||||||
test_expect_success 'incremental repack cannot create bitmaps' '
|
test_expect_success 'incremental repack cannot create bitmaps' '
|
||||||
test_commit more-1 &&
|
test_commit more-1 &&
|
||||||
test_must_fail git repack -d
|
find .git/objects/pack -name "*.bitmap" >expect &&
|
||||||
|
git repack -d &&
|
||||||
|
find .git/objects/pack -name "*.bitmap" >actual &&
|
||||||
|
test_cmp expect actual
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'incremental repack can disable bitmaps' '
|
test_expect_success 'incremental repack can disable bitmaps' '
|
||||||
|
Reference in New Issue
Block a user