git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 3/6] cat-file: do not die on --textconv without textconv filters

From
Junio C Hamano <gitster@pobox.com>
Date
Apr 19, 2013, 18:15 UTC
Message-ID
<7vli8e1j4y.fsf@alter.siamese.dyndns.org>
In-Reply-To
<06f2d51bf0479f3231b707d88d8d04fcd306c973.1366389739.git.git@drmicha.warpmail.net>
Michael J Gruber <git@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...
Show 17 quoted lines
> 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.

Previous: Michael J GruberNext: Jeff King
Message 16 of 77 in “grep with textconv”
  1. 0/6 grep with textconvMichael J Gruber, Apr 19, 2013
  2. 1/6 t4030: demonstrate behavior of show with textconvMichael J Gruber, Apr 19, 2013
  3. Jeff KingApr 20, 2013
  4. Michael J GruberApr 20, 2013
  5. 2/6 show: obey --textconv for blobsMichael J Gruber, Apr 19, 2013
  6. Jeff KingApr 20, 2013
  7. Michael J GruberApr 20, 2013
  8. Jeff KingApr 21, 2013
  9. Michael J GruberApr 22, 2013
  10. Junio C HamanoApr 22, 2013
  11. Jeff KingApr 22, 2013
  12. Jeremy RosenApr 22, 2013
  13. Matthieu MoyApr 22, 2013
  14. Michael J GruberApr 23, 2013
  15. 3/6 cat-file: do not die on --textconv without textconv filtersMichael J Gruber, Apr 19, 2013
  16. Junio C HamanoApr 19, 2013
  17. Jeff KingApr 20, 2013
  18. Michael J GruberApr 20, 2013
  19. 4/6 t7008: demonstrate behavior of grep with textconvMichael J Gruber, Apr 19, 2013
  20. 5/6 grep: allow to use textconv filtersMichael J Gruber, Apr 19, 2013
  21. Jeff KingApr 20, 2013
  22. 6/6 grep: obey --textconv for the case rev:pathMichael J Gruber, Apr 19, 2013
  23. Jeff KingApr 20, 2013
  24. Michael J GruberApr 20, 2013
  25. Jeff KingApr 21, 2013
  26. Junio C HamanoApr 19, 2013
  27. Jeff KingApr 20, 2013
  28. Michael J GruberApr 20, 2013
  29. 0/7 grep with textconvMichael J Gruber, Apr 23, 2013
  30. 1/7 t4030: demonstrate behavior of show with textconvMichael J Gruber, Apr 23, 2013
  31. Junio C HamanoApr 23, 2013
  32. 2/7 show: obey --textconv for blobsMichael J Gruber, Apr 23, 2013
  33. Junio C HamanoApr 23, 2013
  34. Michael J GruberApr 24, 2013
  35. Junio C HamanoApr 24, 2013
  36. 3/7 cat-file: do not die on --textconv without textconv filtersMichael J Gruber, Apr 23, 2013
  37. Junio C HamanoApr 23, 2013
  38. 4/7 t7008: demonstrate behavior of grep with textconvMichael J Gruber, Apr 23, 2013
  39. Junio C HamanoApr 23, 2013
  40. Michael J GruberApr 24, 2013
  41. Junio C HamanoApr 24, 2013
  42. 5/7 grep: allow to use textconv filtersMichael J Gruber, Apr 23, 2013
  43. 6/7 grep: honor --textconv for the case rev:pathMichael J Gruber, Apr 23, 2013
  44. 7/7 git grep: honor textconv by defaultMichael J Gruber, Apr 23, 2013
  45. Junio C HamanoApr 23, 2013
  46. Michael J GruberApr 24, 2013
  47. Junio C HamanoApr 24, 2013
  48. Matthieu MoyApr 24, 2013
  49. Junio C HamanoApr 24, 2013
  50. Michael J GruberApr 26, 2013
  51. Matthieu MoyApr 26, 2013
  52. Michael J GruberApr 29, 2013
  53. Junio C HamanoApr 29, 2013
  54. 1/7 t4030: demonstrate behavior of show with textconvMichael J Gruber, May 10, 2013
  55. 2/7 diff_opt: track whether flags have been set explicitlyMichael J Gruber, May 10, 2013
  56. Eric SunshineMay 10, 2013
  57. 3/7 show: honor --textconv for blobsMichael J Gruber, May 10, 2013
  58. Junio C HamanoMay 10, 2013
  59. Jeff KingMay 10, 2013
  60. Junio C HamanoMay 10, 2013
  61. Jeff KingMay 11, 2013
  62. Junio C HamanoMay 11, 2013
  63. Michael J GruberMay 11, 2013
  64. Michael J GruberMay 11, 2013
  65. Junio C HamanoMay 13, 2013
  66. Jeff KingMay 13, 2013
  67. Michael J GruberMay 13, 2013
  68. Junio C HamanoMay 13, 2013
  69. Jeff KingMay 16, 2013
  70. Junio C HamanoMay 11, 2013
  71. Michael J GruberMay 12, 2013
  72. 4/7 cat-file: do not die on --textconv without textconv filtersMichael J Gruber, May 10, 2013
  73. 5/7 t7008: demonstrate behavior of grep with textconvMichael J Gruber, May 10, 2013
  74. 6/7 grep: allow to use textconv filtersMichael J Gruber, May 10, 2013
  75. 7/7 grep: honor --textconv for the case rev:pathMichael J Gruber, May 10, 2013
  76. Junio C HamanoMay 10, 2013
  77. Junio C HamanoMay 10, 2013

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.