Message ID | 20241121204119.1440773-3-jltobler@gmail.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | propagate fsck message severity for bundle fetch | expand |
Justin Tobler <jltobler@gmail.com> writes: > The git-index-pack(1) spawned during `unbundle()` can be optionally > configured with `--fsck-objects` to perform fsck checks on the bundle. > This does not propagate fsck message severity configuration though. > > Extend `verify_bundle_opts` to store this information and update > `unbundle()` to configure the `--fsck-objects` option appropriately. > > Signed-off-by: Justin Tobler <jltobler@gmail.com> > --- > bundle.c | 3 ++- > bundle.h | 1 + > 2 files changed, 3 insertions(+), 1 deletion(-) > > diff --git a/bundle.c b/bundle.c > index db17f50ee0..97b70e2e51 100644 > --- a/bundle.c > +++ b/bundle.c > @@ -646,7 +646,8 @@ int unbundle(struct repository *r, struct bundle_header *header, int bundle_fd, > strvec_push(&ip.args, "--promisor=from-bundle"); > > if (opts.flags & VERIFY_BUNDLE_FSCK) > - strvec_push(&ip.args, "--fsck-objects"); > + strvec_pushf(&ip.args, "--fsck-objects%s", > + opts.fsck_msg_types ? opts.fsck_msg_types : ""); OK, having %s immediately after --option-name means that anybody who is adding anything to fsck_msg_types is responsible for starting it with an "=" equals sign, but that is in line with how existing code does, e.g. receive-pack drives unpack-objcts/index-pack with the "--strict%s" option with a potential value for fsck_msg_types). > diff --git a/bundle.h b/bundle.h > index bddf44c267..2a7b556f83 100644 > --- a/bundle.h > +++ b/bundle.h > @@ -41,6 +41,7 @@ int verify_bundle(struct repository *r, struct bundle_header *header, > > struct verify_bundle_opts { > enum verify_bundle_flags flags; > + const char *fsck_msg_types; > }; > > /**
diff --git a/bundle.c b/bundle.c index db17f50ee0..97b70e2e51 100644 --- a/bundle.c +++ b/bundle.c @@ -646,7 +646,8 @@ int unbundle(struct repository *r, struct bundle_header *header, int bundle_fd, strvec_push(&ip.args, "--promisor=from-bundle"); if (opts.flags & VERIFY_BUNDLE_FSCK) - strvec_push(&ip.args, "--fsck-objects"); + strvec_pushf(&ip.args, "--fsck-objects%s", + opts.fsck_msg_types ? opts.fsck_msg_types : ""); if (extra_index_pack_args) strvec_pushv(&ip.args, extra_index_pack_args->v); diff --git a/bundle.h b/bundle.h index bddf44c267..2a7b556f83 100644 --- a/bundle.h +++ b/bundle.h @@ -41,6 +41,7 @@ int verify_bundle(struct repository *r, struct bundle_header *header, struct verify_bundle_opts { enum verify_bundle_flags flags; + const char *fsck_msg_types; }; /**
The git-index-pack(1) spawned during `unbundle()` can be optionally configured with `--fsck-objects` to perform fsck checks on the bundle. This does not propagate fsck message severity configuration though. Extend `verify_bundle_opts` to store this information and update `unbundle()` to configure the `--fsck-objects` option appropriately. Signed-off-by: Justin Tobler <jltobler@gmail.com> --- bundle.c | 3 ++- bundle.h | 1 + 2 files changed, 3 insertions(+), 1 deletion(-)