Merge branch 'gs/commit-graph-path-filter'
Introduce an extension to the commit-graph to make it efficient to check for the paths that were modified at each commit using Bloom filters. * gs/commit-graph-path-filter: bloom: ignore renames when computing changed paths commit-graph: add GIT_TEST_COMMIT_GRAPH_CHANGED_PATHS test flag t4216: add end to end tests for git log with Bloom filters revision.c: add trace2 stats around Bloom filter usage revision.c: use Bloom filters to speed up path based revision walks commit-graph: add --changed-paths option to write subcommand commit-graph: reuse existing Bloom filters during write commit-graph: write Bloom filters to commit graph file commit-graph: examine commits by generation number commit-graph: examine changed-path objects in pack order commit-graph: compute Bloom filters for changed paths diff: halt tree-diff early after max_changes bloom.c: core Bloom filter implementation for changed paths. bloom.c: introduce core Bloom filter constructs bloom.c: add the murmur3 hash implementation commit-graph: define and use MAX_NUM_CHUNKS
This commit is contained in:
@ -10,8 +10,10 @@
|
||||
|
||||
#define GIT_TEST_COMMIT_GRAPH "GIT_TEST_COMMIT_GRAPH"
|
||||
#define GIT_TEST_COMMIT_GRAPH_DIE_ON_LOAD "GIT_TEST_COMMIT_GRAPH_DIE_ON_LOAD"
|
||||
#define GIT_TEST_COMMIT_GRAPH_CHANGED_PATHS "GIT_TEST_COMMIT_GRAPH_CHANGED_PATHS"
|
||||
|
||||
struct commit;
|
||||
struct bloom_filter_settings;
|
||||
|
||||
char *get_commit_graph_filename(struct object_directory *odb);
|
||||
int open_commit_graph(const char *graph_file, int *fd, struct stat *st);
|
||||
@ -58,6 +60,10 @@ struct commit_graph {
|
||||
const unsigned char *chunk_commit_data;
|
||||
const unsigned char *chunk_extra_edges;
|
||||
const unsigned char *chunk_base_graphs;
|
||||
const unsigned char *chunk_bloom_indexes;
|
||||
const unsigned char *chunk_bloom_data;
|
||||
|
||||
struct bloom_filter_settings *bloom_filter_settings;
|
||||
};
|
||||
|
||||
struct commit_graph *load_commit_graph_one_fd_st(int fd, struct stat *st,
|
||||
@ -77,7 +83,8 @@ enum commit_graph_write_flags {
|
||||
COMMIT_GRAPH_WRITE_PROGRESS = (1 << 1),
|
||||
COMMIT_GRAPH_WRITE_SPLIT = (1 << 2),
|
||||
/* Make sure that each OID in the input is a valid commit OID. */
|
||||
COMMIT_GRAPH_WRITE_CHECK_OIDS = (1 << 3)
|
||||
COMMIT_GRAPH_WRITE_CHECK_OIDS = (1 << 3),
|
||||
COMMIT_GRAPH_WRITE_BLOOM_FILTERS = (1 << 4),
|
||||
};
|
||||
|
||||
enum commit_graph_split_flags {
|
||||
|
Reference in New Issue
Block a user