diff options
Diffstat (limited to 'pack-bitmap-write.c')
-rw-r--r-- | pack-bitmap-write.c | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/pack-bitmap-write.c b/pack-bitmap-write.c index a213f5eddc..cdffe2ce47 100644 --- a/pack-bitmap-write.c +++ b/pack-bitmap-write.c @@ -1,4 +1,8 @@ -#include "cache.h" +#include "git-compat-util.h" +#include "alloc.h" +#include "environment.h" +#include "gettext.h" +#include "hex.h" #include "object-store.h" #include "commit.h" #include "tag.h" @@ -13,6 +17,9 @@ #include "pack-objects.h" #include "commit-reach.h" #include "prio-queue.h" +#include "trace2.h" +#include "tree.h" +#include "tree-walk.h" struct bitmapped_commit { struct commit *commit; @@ -384,6 +391,8 @@ static int fill_bitmap_tree(struct bitmap *bitmap, return 0; } +static int reused_bitmaps_nr; + static int fill_bitmap_commit(struct bb_commit *ent, struct commit *commit, struct prio_queue *queue, @@ -409,8 +418,10 @@ static int fill_bitmap_commit(struct bb_commit *ent, * bitmap and add its bits to this one. No need to walk * parents or the tree for this commit. */ - if (old && !rebuild_bitmap(mapping, old, ent->bitmap)) + if (old && !rebuild_bitmap(mapping, old, ent->bitmap)) { + reused_bitmaps_nr++; continue; + } } /* @@ -421,7 +432,8 @@ static int fill_bitmap_commit(struct bb_commit *ent, if (!found) return -1; bitmap_set(ent->bitmap, pos); - prio_queue_put(tree_queue, get_commit_tree(c)); + prio_queue_put(tree_queue, + repo_get_commit_tree(the_repository, c)); for (p = c->parents; p; p = p->next) { pos = find_object_pos(&p->item->object.oid, &found); @@ -526,6 +538,8 @@ int bitmap_writer_build(struct packing_data *to_pack) trace2_region_leave("pack-bitmap-write", "building_bitmaps_total", the_repository); + trace2_data_intmax("pack-bitmap-write", the_repository, + "building_bitmaps_reused", reused_bitmaps_nr); stop_progress(&writer.progress); |