]> git.ipfire.org Git - thirdparty/git.git/blobdiff - pack-bitmap-write.c
dir.h: move DTYPE defines from cache.h
[thirdparty/git.git] / pack-bitmap-write.c
index a213f5eddc5df2401f1232f37514050ea91efc31..faf67c94d37e15914f248779f50207ffeb805b72 100644 (file)
@@ -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,7 @@
 #include "pack-objects.h"
 #include "commit-reach.h"
 #include "prio-queue.h"
+#include "trace2.h"
 
 struct bitmapped_commit {
        struct commit *commit;
@@ -384,6 +389,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 +416,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 +430,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 +536,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);