Re: [PATCH 3/3] fetch: die on invalid --negotiation-tip hash
- From
Ævar Arnfjörð Bjarmason <avarab@gmail.com>
- Date
- Jul 14, 2021, 21:45 UTC
- Message-ID
- <87sg0gzhys.fsf@evledraar.gmail.com>
- In-Reply-To
- <20210714193506.4084421-1-jonathantanmy@google.com>
On Wed, Jul 14 2021, Jonathan Tan wrote:
Show 27 quoted lines
>> >> diff --git a/builtin/fetch.c b/builtin/fetch.c
>> >> index 9191620e50..2c50465cff 100644
>> >> --- a/builtin/fetch.c
>> >> +++ b/builtin/fetch.c
>> >> @@ -1428,7 +1428,9 @@ static void add_negotiation_tips(struct git_transport_options *smart_options)
>> >> if (!has_glob_specials(s)) {
>> >> struct object_id oid;
>> >> if (get_oid(s, &oid))
>> >> - die("%s is not a valid object", s);
>> >> + die(_("%s is not a valid object"), s);
>> >> + if (!has_object(the_repository, &oid, 0))
>> >> + die(_("%s is not a valid object"), s);
>> > Any reason not to consolidate these, e.g. if (get_oid || !has_object)?
>> > Then we wouldn't dup the err string.
>>
>> Generally I'd agree, but aren't we explicitly conflating cases where
>> something is a valid way no name an object v.s. being certain that such
>> an object does not exist? I.e. this should be something like:
>>
>> if can't get_get():
>> error "couldn't get the OID of revision '%s'"
>> if can't look up fully-qualified OID:
>> error "the OID '%s' does not exist"
>>
>> Or something...
>
> Good point. I'll use wording similar to yours.I stole the former from a quick grepping around:
builtin/bisect--helper.c: res = error(_("couldn't get the oid of the rev '%s'"), rev)Then http-push.c suggests "perhaps you need to fetch" for has_object_file(), but I don't know if it applies here...