Michael J Gruber <g...@drmicha.warpmail.net> writes:

> When a command is supposed to use textconv filters (by default or with
> "--textconv") and none are configured then the blob is output without
> conversion; the only exception to this rule is "cat-file --textconv".

I am of two minds.  Because cat-file is mostly a low-level plumbing,
I do not necessarily think it is a bad behaviour for it to error out
when it was asked to apply textconv where there is no filter or when
the filter fails to produce an output.  On the other hand, it
certainly makes it more convenient for callers that do not care too
deeply, taking textconv as a mere hint just like Porcelains do.

But assuming that this is the direction we would want to go...

> diff --git a/builtin/cat-file.c b/builtin/cat-file.c
> index 40f87b4..dd4e063 100644
> --- a/builtin/cat-file.c
> +++ b/builtin/cat-file.c
> @@ -146,10 +146,11 @@ static int cat_one_file(int opt, const char *exp_type, 
> const char *obj_name)
>                       die("git cat-file --textconv %s: <object> must be 
> <sha1:path>",
>                           obj_name);
> -             if (!textconv_object(obj_context.path, obj_context.mode, sha1, 
> 1, &buf, &size))
> -                     die("git cat-file --textconv: unable to run textconv on 
> %s",
> -                         obj_name);
> -             break;
> +             if (textconv_object(obj_context.path, obj_context.mode, sha1, 
> 1, &buf, &size))
> +                     break;
> +
> +             /* otherwise expect a blob */
> +             exp_type = "blob";

Please use the constant string blob_type that is available for all
callers including this one.
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to