Derrick Stolee <dstolee@xxxxxxxxxxxxx> writes: > If a commit-graph file exists, check its contents during 'git fsck'. Is it "if a commit-graph file exists", or is it core.commitGraph feature is turned on? > > Signed-off-by: Derrick Stolee <dstolee@xxxxxxxxxxxxx> > --- > builtin/fsck.c | 13 +++++++++++++ > 1 file changed, 13 insertions(+) > > diff --git a/builtin/fsck.c b/builtin/fsck.c > index ef78c6c00c..9712f230ba 100644 > --- a/builtin/fsck.c > +++ b/builtin/fsck.c > @@ -16,6 +16,7 @@ > #include "streaming.h" > #include "decorate.h" > #include "packfile.h" > +#include "run-command.h" Couln't this be done internally, without run-command? Or is it just preliminary implementation? > > #define REACHABLE 0x0001 > #define SEEN 0x0002 > @@ -45,6 +46,7 @@ static int name_objects; > #define ERROR_REACHABLE 02 > #define ERROR_PACK 04 > #define ERROR_REFS 010 > +#define ERROR_COMMIT_GRAPH 020 I see that these error status codes are not documented anywhere. Still, I would expect at least mentioning commit-graph in the git-fsck manpage. > > static const char *describe_object(struct object *obj) > { > @@ -815,5 +817,16 @@ int cmd_fsck(int argc, const char **argv, const char *prefix) > } > > check_connectivity(); > + > + if (core_commit_graph) { > + struct child_process commit_graph_check = CHILD_PROCESS_INIT; > + const char *check_argv[] = { "commit-graph", "check", NULL, NULL }; > + commit_graph_check.argv = check_argv; > + commit_graph_check.git_cmd = 1; > + > + if (run_command(&commit_graph_check)) > + errors_found |= ERROR_COMMIT_GRAPH; > + } > + > return errors_found; > }