commit-graph: verify chains with --shallow mode

If we wrote a commit-graph chain, we only modified the tip file in
the chain. It is valuable to verify what we wrote, but not waste
time checking files we did not write.

Add a '--shallow' option to the 'git commit-graph verify' subcommand
and check that it does not read the base graph in a two-file chain.

Making the verify subcommand read from a chain of commit-graphs takes
some rearranging of the builtin code.

Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Derrick Stolee
2019-06-18 11:14:32 -07:00
committed by Junio C Hamano
parent c2bc6e6ab0
commit 3da4b609bb
5 changed files with 101 additions and 14 deletions

View File

@ -61,7 +61,7 @@ struct commit_graph {
};
struct commit_graph *load_commit_graph_one_fd_st(int fd, struct stat *st);
struct commit_graph *read_commit_graph_one(struct repository *r, const char *obj_dir);
struct commit_graph *parse_commit_graph(void *graph_map, int fd,
size_t graph_size);
@ -95,7 +95,9 @@ int write_commit_graph(const char *obj_dir,
unsigned int flags,
const struct split_commit_graph_opts *split_opts);
int verify_commit_graph(struct repository *r, struct commit_graph *g);
#define COMMIT_GRAPH_VERIFY_SHALLOW (1 << 0)
int verify_commit_graph(struct repository *r, struct commit_graph *g, int flags);
void close_commit_graph(struct raw_object_store *);
void free_commit_graph(struct commit_graph *);