list-objects-filter: give a more specific error sparse parsing error

The sparse:oid filter has two error modes: we might fail to resolve the
name to an OID, or we might fail to parse the contents of that OID. In
the latter case, let's give a less generic error message, and mention
the OID we did find.

While we're here, let's also mark both messages as translatable.

Signed-off-by: Jeff King <peff@peff.net>
Acked-by: Jeff Hostetler <jeffhost@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Jon Simons 2019-09-14 21:13:47 -04:00 коммит произвёл Junio C Hamano
Родитель 4c96a77594
Коммит cf34337f98
2 изменённых файлов: 4 добавлений и 3 удалений

Просмотреть файл

@ -469,11 +469,12 @@ static void *filter_sparse_oid__init(
if (get_oid_with_context(the_repository,
filter_options->sparse_oid_name,
GET_OID_BLOB, &sparse_oid, &oc))
die("unable to access sparse blob in '%s'",
die(_("unable to access sparse blob in '%s'"),
filter_options->sparse_oid_name);
d->omits = omitted;
if (add_excludes_from_blob_to_list(&sparse_oid, NULL, 0, &d->el) < 0)
die("could not load filter specification");
die(_("unable to parse sparse filter data in %s"),
oid_to_hex(&sparse_oid));
ALLOC_GROW(d->array_frame, d->nr + 1, d->alloc);
d->array_frame[d->nr].defval = 0; /* default to include */

Просмотреть файл

@ -274,7 +274,7 @@ test_expect_success 'partial clone with unresolvable sparse filter fails cleanly
test_must_fail git clone --no-local --bare \
--filter=sparse:oid=master \
sparse-src dst.git 2>err &&
test_i18ngrep "could not load filter specification" err
test_i18ngrep "unable to parse sparse filter data in" err
'
. "$TEST_DIRECTORY"/lib-httpd.sh