summaryrefslogtreecommitdiff
path: root/commit-graph.h
diff options
context:
space:
mode:
authorLibravatar Derrick Stolee <dstolee@microsoft.com>2018-04-10 08:56:02 -0400
committerLibravatar Junio C Hamano <gitster@pobox.com>2018-04-11 10:43:01 +0900
commit2a2e32bdc5a80221981939e77643cec3462b4793 (patch)
treeae0344a998a46747dec3fbaf443e852ae4f71db4 /commit-graph.h
parentcommit-graph: implement git-commit-graph write (diff)
downloadtgif-2a2e32bdc5a80221981939e77643cec3462b4793.tar.xz
commit-graph: implement git commit-graph read
Teach git-commit-graph to read commit graph files and summarize their contents. Use the read subcommand to verify the contents of a commit graph file in the tests. Signed-off-by: Derrick Stolee <dstolee@microsoft.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'commit-graph.h')
-rw-r--r--commit-graph.h23
1 files changed, 23 insertions, 0 deletions
diff --git a/commit-graph.h b/commit-graph.h
index 16fea993ab..2528478f06 100644
--- a/commit-graph.h
+++ b/commit-graph.h
@@ -1,6 +1,29 @@
#ifndef COMMIT_GRAPH_H
#define COMMIT_GRAPH_H
+#include "git-compat-util.h"
+
+char *get_commit_graph_filename(const char *obj_dir);
+
+struct commit_graph {
+ int graph_fd;
+
+ const unsigned char *data;
+ size_t data_len;
+
+ unsigned char hash_len;
+ unsigned char num_chunks;
+ uint32_t num_commits;
+ struct object_id oid;
+
+ const uint32_t *chunk_oid_fanout;
+ const unsigned char *chunk_oid_lookup;
+ const unsigned char *chunk_commit_data;
+ const unsigned char *chunk_large_edges;
+};
+
+struct commit_graph *load_commit_graph_one(const char *graph_file);
+
void write_commit_graph(const char *obj_dir);
#endif