]> git.ipfire.org Git - thirdparty/git.git/blobdiff - commit-graph.h
The tenth batch
[thirdparty/git.git] / commit-graph.h
index f8e92500c6e4bc004c9945b29d27da89319d0bd0..97f3497c2790c5bca0f9c73dd069291c95456895 100644 (file)
@@ -6,6 +6,7 @@
 #include "oidset.h"
 
 #define GIT_TEST_COMMIT_GRAPH "GIT_TEST_COMMIT_GRAPH"
+#define GIT_TEST_COMMIT_GRAPH_NO_GDAT "GIT_TEST_COMMIT_GRAPH_NO_GDAT"
 #define GIT_TEST_COMMIT_GRAPH_DIE_ON_PARSE "GIT_TEST_COMMIT_GRAPH_DIE_ON_PARSE"
 #define GIT_TEST_COMMIT_GRAPH_CHANGED_PATHS "GIT_TEST_COMMIT_GRAPH_CHANGED_PATHS"
 
@@ -63,16 +64,20 @@ struct commit_graph {
        struct object_directory *odb;
 
        uint32_t num_commits_in_base;
+       unsigned int read_generation_data;
        struct commit_graph *base_graph;
 
        const uint32_t *chunk_oid_fanout;
        const unsigned char *chunk_oid_lookup;
        const unsigned char *chunk_commit_data;
+       const unsigned char *chunk_generation_data;
+       const unsigned char *chunk_generation_data_overflow;
        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 topo_level_slab *topo_levels;
        struct bloom_filter_settings *bloom_filter_settings;
 };
 
@@ -90,6 +95,12 @@ struct commit_graph *parse_commit_graph(struct repository *r,
  */
 int generation_numbers_enabled(struct repository *r);
 
+/*
+ * Return 1 if and only if the repository has a commit-graph
+ * file and generation data chunk has been written for the file.
+ */
+int corrected_commit_dates_enabled(struct repository *r);
+
 struct bloom_filter_settings *get_bloom_filter_settings(struct repository *r);
 
 enum commit_graph_write_flags {
@@ -144,12 +155,12 @@ void disable_commit_graph(struct repository *r);
 
 struct commit_graph_data {
        uint32_t graph_pos;
-       uint32_t generation;
+       timestamp_t generation;
 };
 
 /*
  * Commits should be parsed before accessing generation, graph positions.
  */
-uint32_t commit_graph_generation(const struct commit *);
+timestamp_t commit_graph_generation(const struct commit *);
 uint32_t commit_graph_position(const struct commit *);
 #endif