Re: [PATCH 4/4] fetch-pack: print and use dangling .gitmodules
- From
Ævar Arnfjörð Bjarmason <avarab@gmail.com>
- Date
- Feb 17, 2021, 19:27 UTC
- Message-ID
- <8735xua40w.fsf@evledraar.gmail.com>
- In-Reply-To
- <2d6d8c2671fe424c752994dcb5277d4d923e17a0.1611455251.git.jonathantanmy@google.com>
On Sun, Jan 24 2021, Jonathan Tan wrote:
Show 34 quoted lines
> 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;