Re: [PATCH 10/15] [GSOC] cat-file: add has_object_file() check
- From
ZheNing Hu <adlternative@gmail.com>
- Date
- Jul 3, 2021, 05:50 UTC
- Message-ID
- <CAOLTT8SD1eSNy1w8HBt0Z2BA=YqiUYrWsnAA9cDhBOdff=U=Yg@mail.gmail.com>
- In-Reply-To
- <87a6n4alfk.fsf@evledraar.gmail.com>
Ævar Arnfjörð Bjarmason <avarab@gmail.com> 于2021年7月2日周五 下午9:34写道:
Show 38 quoted lines
>
>
> On Thu, Jul 01 2021, ZheNing Hu via GitGitGadget wrote:
>
> > From: ZheNing Hu <adlternative@gmail.com>
> >
> > Use `has_object_file()` in `batch_one_object()` to check
> > whether the input object exists. This can help us reject
> > the missing oid when we let `cat-file --batch` use ref-filter
> > logic later.
> >
> > Mentored-by: Christian Couder <christian.couder@gmail.com>
> > Mentored-by: Hariom Verma <hariom18599@gmail.com>
> > Signed-off-by: ZheNing Hu <adlternative@gmail.com>
> > ---
> > builtin/cat-file.c | 7 +++++++
> > 1 file changed, 7 insertions(+)
> >
> > diff --git a/builtin/cat-file.c b/builtin/cat-file.c
> > index 243fe6844bc..59a86412fd0 100644
> > --- a/builtin/cat-file.c
> > +++ b/builtin/cat-file.c
> > @@ -428,6 +428,13 @@ static void batch_one_object(const char *obj_name,
> > return;
> > }
> >
> > + if (!has_object_file(&data->oid)) {
> > + printf("%s missing\n",
> > + obj_name ? obj_name : oid_to_hex(&data->oid));
> > + fflush(stdout);
> > + return;
> > + }
> > +
> > batch_object_write(obj_name, scratch, opt, data);
> > }
>
> In 12/15 the old "missing" is removed, so is this strictly redundant to
> what's in batch_object_write() for now, does it change anything?Both of these commits are used to pass some tests for checking missing objects.
If we don't have this commit, "empty --batch-check notices missing object" in "t/t1006-cat-file.sh" will fail; If we don't have the commit "[GSOC] ref-filter: modify the error message and value in get_object", "bogus OFS_DELTA in packfile" in "t/t5313-pack-bounds-checks.sh" will fail.
Thanks. -- ZheNing Hu