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

Re: [PATCH v6 12/13] convert: add filter.<driver>.process option

From
Torsten Bögershausen <tboegi@web.de>
Date
Aug 31, 2016, 04:57 UTC
Message-ID
<20160831045713.GA15209@tb-raspi>
In-Reply-To
<xmqqmvjt3nht.fsf@gitster.mtv.corp.google.com>
On Tue, Aug 30, 2016 at 03:23:10PM -0700, Junio C Hamano wrote:
Show 51 quoted lines
> Lars Schneider <larsxschneider@gmail.com> writes:
> 
> > On 30 Aug 2016, at 20:59, Junio C Hamano <gitster@pobox.com> wrote:
> >> 
> >>> "abort" could be ambiguous because it could be read as "abort only
> >>> this file". "abort-all" would work, though. Would you prefer to see
> >>> "error" replaced by "abort" and "error-all" by "abort-all"?
> >> 
> >> No.
> >> 
> >> I was primarily reacting to "-all" part, so anything that ends with
> >> "-all" is equally ugly from my point of view and not an improvement.
> >> 
> >> As I said, "error-all" as long as other reviewers are happy with is
> >> OK by me, too.
> >
> > Now, I see your point. How about "error-and-stop" or "error-stop"
> > instead of "error-all"?
> 
> Not really.  I was primarily reacting to having "error" and
> "error-all", that share the same prefix.  Changing "-all" suffix to
> "-stop" does not make all that difference to me.  But in any case,
> as long as other reviewers are happy with it, it is OK by me, too.
> 
> > Good argument. However, my intention here was to mimic the v1 filter
> > mechanism.
> 
> I am not making any argument and in no way against the chosen
> behaviour.  That "intention here" that was revealed after two
> iterations is something we would want to see as the reasoning
> behind the choice of the final behaviour recorded somewhere,
> and now I drew it out of you, I achieved what I set out to do
> initially ;-)
> 
> > I am not sure I understand your last sentence. Just to be clear:
> > Would you prefer it, if Git would just close the pipe to the filter process
> > on Git exit and leave the filter running?
> 
> As a potential filter writer, I would probably feel it the easiest
> to handle if there is no signal involved.  My job would be to read
> from the command pipe, react to it, and when the command pipe gives
> me EOF, I am expected to exit myself.  That would be simple enough.
> 
> >> I meant it as primarily an example people can learn from when they
> >> want to write their own.
> >
> > I think `t/t0021/rot13-filter.pl` (part of this patch) serves this purpose 
> > already.
> 
> I would expect them to peek at contrib/, but do you seriously expect
> people to comb through t/ directory?

How about a filter written in C, and placed in ./t/helper/ ? At least I feel that a filter in C-language could be a starting point for others which prefer, depending on the task the filter is going to do, to use shell scripts, perl, python or any other high-level language.

A test case, where data can not be filtered, would be a minimum. As Jakub pointed out, you can use iconv with good and bad data.

Previous: Junio C HamanoNext: Jakub Narębski
Message 38 of 66 in “Git filter protocol”
  1. 00/13 Git filter protocollarsxschneider@gmail.com, Aug 25, 2016
  2. 10/13 convert: generate large test files only oncelarsxschneider@gmail.com, Aug 25, 2016
  3. Stefan BellerAug 25, 2016
  4. Lars SchneiderAug 25, 2016
  5. Junio C HamanoAug 29, 2016
  6. Lars SchneiderAug 30, 2016
  7. Junio C HamanoAug 30, 2016
  8. Junio C HamanoAug 29, 2016
  9. Lars SchneiderAug 30, 2016
  10. Jeff KingAug 30, 2016
  11. 06/13 pkt-line: add functions to read/write flush terminated packet streamslarsxschneider@gmail.com, Aug 25, 2016
  12. Stefan BellerAug 25, 2016
  13. Junio C HamanoAug 25, 2016
  14. Jacob KellerAug 26, 2016
  15. Stefan BellerAug 26, 2016
  16. Jeff KingAug 26, 2016
  17. Junio C HamanoAug 26, 2016
  18. Lars SchneiderAug 25, 2016
  19. Junio C HamanoAug 25, 2016
  20. Lars SchneiderAug 26, 2016
  21. Junio C HamanoAug 26, 2016
  22. Lars SchneiderAug 29, 2016
  23. 01/13 pkt-line: rename packet_write() to packet_write_fmt()larsxschneider@gmail.com, Aug 25, 2016
  24. 03/13 pkt-line: add packet_write_fmt_gently()larsxschneider@gmail.com, Aug 25, 2016
  25. Stefan BellerAug 25, 2016
  26. Lars SchneiderAug 25, 2016
  27. Junio C HamanoAug 25, 2016
  28. Lars SchneiderAug 26, 2016
  29. Junio C HamanoAug 26, 2016
  30. Jeff KingAug 26, 2016
  31. 11/13 convert: make apply_filter() adhere to standard Git error handlinglarsxschneider@gmail.com, Aug 25, 2016
  32. 12/13 convert: add filter.<driver>.process optionlarsxschneider@gmail.com, Aug 25, 2016
  33. Junio C HamanoAug 29, 2016
  34. Lars SchneiderAug 30, 2016
  35. Junio C HamanoAug 30, 2016
  36. Lars SchneiderAug 30, 2016
  37. Junio C HamanoAug 30, 2016
  38. Torsten BögershausenAug 31, 2016
  39. Jakub NarębskiAug 31, 2016
  40. Jakub NarębskiAug 30, 2016
  41. Lars SchneiderSep 5, 2016
  42. 05/13 pkt-line: add packet_write_gently()larsxschneider@gmail.com, Aug 25, 2016
  43. Junio C HamanoAug 25, 2016
  44. Lars SchneiderAug 26, 2016
  45. Junio C HamanoAug 26, 2016
  46. Lars SchneiderAug 29, 2016
  47. 13/13 read-cache: make sure file handles are not inherited by child processeslarsxschneider@gmail.com, Aug 25, 2016
  48. Junio C HamanoAug 29, 2016
  49. Lars SchneiderAug 29, 2016
  50. Junio C HamanoAug 29, 2016
  51. Lars SchneiderAug 30, 2016
  52. Torsten BögershausenAug 30, 2016
  53. Junio C HamanoSep 1, 2016
  54. 02/13 pkt-line: extract set_packet_header()larsxschneider@gmail.com, Aug 25, 2016
  55. 09/13 convert: modernize testslarsxschneider@gmail.com, Aug 25, 2016
  56. Junio C HamanoAug 26, 2016
  57. Lars SchneiderAug 29, 2016
  58. 08/13 convert: quote filter names in error messageslarsxschneider@gmail.com, Aug 25, 2016
  59. Junio C HamanoAug 26, 2016
  60. 04/13 pkt-line: add packet_flush_gently()larsxschneider@gmail.com, Aug 25, 2016
  61. 07/13 pack-protocol: fix maximum pkt-line sizelarsxschneider@gmail.com, Aug 25, 2016
  62. Stefan BellerAug 25, 2016
  63. Lars SchneiderAug 25, 2016
  64. Junio C HamanoAug 26, 2016
  65. Lars SchneiderAug 29, 2016
  66. Junio C HamanoAug 29, 2016

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.