diff options
author | Junio C Hamano <gitster@pobox.com> | 2014-03-28 13:50:50 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2014-03-28 13:50:50 -0700 |
commit | e2450e1245cdbcb709e841069039077ab0a2a96a (patch) | |
tree | cc4f2578f77903501b017597162010b9ea6acd58 /builtin | |
parent | d393d140b5656e608b332c00ea3b14f9a060d604 (diff) | |
parent | 373c67da1df7fcd33593ca26e6d67f177152b21a (diff) | |
download | git-e2450e1245cdbcb709e841069039077ab0a2a96a.tar.gz |
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
Diffstat (limited to 'builtin')
-rw-r--r-- | builtin/pack-objects.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/builtin/pack-objects.c b/builtin/pack-objects.c index 0ee5f1ff94..e3150d7d4e 100644 --- a/builtin/pack-objects.c +++ b/builtin/pack-objects.c @@ -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), |