On Sun, Jan 24 2021, Jonathan Tan wrote: > diff --git a/builtin/index-pack.c b/builtin/index-pack.c > index 557bd2f348..f995c15115 100644 > --- a/builtin/index-pack.c > +++ b/builtin/index-pack.c > @@ -1888,8 +1888,13 @@ int cmd_index_pack(int argc, const char **argv, const char *prefix) > else > close(input_fd); > > - if (do_fsck_object && fsck_finish(&fsck_options)) > - die(_("fsck error in pack objects")); > + if (do_fsck_object) { > + struct fsck_options fo = FSCK_OPTIONS_STRICT; > + > + fo.print_dangling_gitmodules = 1; > + if (fsck_finish(&fo)) > + die(_("fsck error in pack objects")); > + } > [...] > +static void fsck_gitmodules_oids(struct oidset *gitmodules_oids) > +{ > + struct oidset_iter iter; > + const struct object_id *oid; > + struct fsck_options fo = FSCK_OPTIONS_STRICT; > + > + if (!oidset_size(gitmodules_oids)) > + return; > + > + oidset_iter_init(gitmodules_oids, &iter); > + while ((oid = oidset_iter_next(&iter))) > + register_found_gitmodules(oid); > + if (fsck_finish(&fo)) > + die("fsck failed"); > +} > + What's the need for STRICT here & can't the former use the existing fsck_options in index-pack.c? With this on top we pass all tests: diff --git a/builtin/index-pack.c b/builtin/index-pack.c index 18531199242..5464edf4778 100644 --- a/builtin/index-pack.c +++ b/builtin/index-pack.c @@ -1933,10 +1933,8 @@ int cmd_index_pack(int argc, const char **argv, const char *prefix) close(input_fd); if (do_fsck_object) { - struct fsck_options fo = FSCK_OPTIONS_STRICT; - - fo.print_dangling_gitmodules = 1; - if (fsck_finish(&fo)) + fsck_options.print_dangling_gitmodules = 1; + if (fsck_finish(&fsck_options)) die(_("fsck error in pack objects")); } diff --git a/fetch-pack.c b/fetch-pack.c index 0a337a04f1f..a8754d97e3d 100644 --- a/fetch-pack.c +++ b/fetch-pack.c @@ -997,7 +997,7 @@ static void fsck_gitmodules_oids(struct oidset *gitmodules_oids) { struct oidset_iter iter; const struct object_id *oid; - struct fsck_options fo = FSCK_OPTIONS_STRICT; + struct fsck_options fo = FSCK_OPTIONS_DEFAULT; if (!oidset_size(gitmodules_oids)) return;