Only build commit graph with Bloom filter when use split commit-graph

This is a follow up from !3317 (comment 543810773)

Current implementation of WriteCommitGraph would be really slow on bigger repo because Bloom Filter was enabled.

A better approach would be to:

  1. Implement split commit graph
  2. Enable bloom-filter

That way it would allow the commit-graph to be written in re-usable chunks, effectively make the write Bloom Filter process a lot cheaper.

Reference: #3277 (comment 536339323)

cc: @8bitlife @pks-t @zj-gitlab

Edited by Pavlo Strokov
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information