зеркало из https://github.com/microsoft/git.git
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:
Коммит
e2450e1245
|
@ -995,6 +995,10 @@ static void create_object_entry(const unsigned char *sha1,
|
|||
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,
|
||||
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))
|
||||
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;
|
||||
}
|
||||
|
||||
create_object_entry(sha1, type, pack_name_hash(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_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' '
|
||||
|
|
Загрузка…
Ссылка в новой задаче