commit-graph: reduce initial oid allocation

While writing a commit-graph file, we store the full list of commits in a flat list. We use this list for sorting and ensuring we are closed under reachability. The initial allocation assumed that (at most) one in four objects is a commit. This is a dramatic over-count for many repos, especially large ones. Since we grow the repo dynamically, reduce this count by a factor of eight. We still set it to a minimum of 1024 before allocating. Signed-off-by: Derrick Stolee <dstolee@microsoft.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Derrick Stolee committed Oct 3, 2018 at 10:12 UTC 53c36670e7f21342fb6017f39e0c91362e50dfe0
1 file changed +1 -1
commit-graph.c
+1 -1
@@ -720,7 +720,7 @@ void write_commit_graph(const char *obj_dir,
720 struct progress *progress = NULL;
721
722 oids.nr = 0;
723 - oids.alloc = approximate_object_count() / 4;
723 + oids.alloc = approximate_object_count() / 32;
724 oids.progress = NULL;
725 oids.progress_done = 0;
726