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

Re: [PATCH 1/1] cat-file: quote-format name in error when using -z

From
PWPhillip Wood <phillip.wood123@gmail.com>
Date
Dec 20, 2022, 10:18 UTC
Message-ID
<aab41ec5-7854-b62c-f11c-ba850cbac95b@dunelm.org.uk>
In-Reply-To
<87a63i7h8h.fsf@to1.studio>
Hi Toon
On 20/12/2022 05:31, Toon Claes wrote:
Show 12 quoted lines
> 
> Phillip Wood <phillip.wood123@gmail.com> writes:
> 
>> Thanks for working on this. I'd previously suggested NUL terminating the output
>> of "git cat-file -z" to avoid this problem [1]
>>
>> [1]
>> https://lore.kernel.org/git/66b71194-ad0e-18d0-e43b-71e5c47ba111@gmail.com/
> 
> What happened to this proposal? I don't see any replies to that. That's
> a bit sad, because it would have been nice to have it this behavior from
> the start.

Yes it would have been nice, unfortunately it feel through the cracks due to a combination of unfortunate timing and lack of time. I think the patch was probably in next by the time I realized the problem and wrote that email. Taylor was on holiday at the time and then I went away around the time he got back. I know it was on his todo list but I think he was busy catching up from being away getting ready for git merge. I had other things I was working on and unfortunately didn't get round to following it up.

Show 18 quoted lines
>> but quoting the object name is a better solution.
> 
> I would not say it's a better solution, but it's a less invasive
> solution that /minimizes/ breaking changes. Ideally I'd like to have NUL
> terminated output for "git cat-file -z". In a success situation I
> assume this would return:
> 
>      <oid> SP <type> SP <size> NUL
>      <contents> NUL
> 
> In a failure situation something like:
> 
>      <object> SP missing NUL
> 
> So when you pass -z you can keep reading until the first NUL and then
> you'll know if you should read for contents as well.
> 
> Would you consider change behavior to this now?

Hmm I'm not sure (and luckily it isn't up to me to take the final decision!). I really don't know how many people are using "-z" I suspect it is not many and so the fallout wouldn't be too bad but we'd still be inconveniencing some users. I theory we could so "sorry we made a mistake when implementing this feature and have decided to change it" but we have a solution in your patch which hopefully does not break any users (I say hopefully because think if one is careful and keep track of which responses you've read it is possible to detect missing objects now even if their name contains a new line but it will be messy and probably slightly inefficient but anyone doing that will notice the change in output).

Overall I'd say it is tempting but risky and inconvenient to any existing users of "-z" (assuming someone else is actually using it). Quoting the object name is definitively the safer option at this point.

Best Wishes
Phillip
Previous: Toon ClaesNext: Toon Claes
Message 12 of 32 in “cat-file: quote-format name in error when using -z”
  1. 0/1 cat-file: quote-format name in error when using -zToon Claes, Dec 9, 2022
  2. 1/1 cat-file: quote-format name in error when using -zToon Claes, Dec 9, 2022
  3. Phillip WoodDec 9, 2022
  4. Junio C HamanoDec 9, 2022
  5. Phillip WoodDec 11, 2022
  6. Junio C HamanoDec 12, 2022
  7. Toon ClaesDec 12, 2022
  8. Junio C HamanoDec 12, 2022
  9. Phillip WoodDec 13, 2022
  10. Junio C HamanoDec 14, 2022
  11. Toon ClaesDec 20, 2022
  12. Phillip WoodDec 20, 2022
  13. Toon ClaesDec 21, 2022
  14. 0/1 cat-file: quote-format name in error when using -zToon Claes, Jan 5, 2023
  15. 1/1 cat-file: quote-format name in error when using -zToon Claes, Jan 5, 2023
  16. 0/1 cat-file: quote-format name in error when using -zToon Claes, Jan 16, 2023
  17. 1/1 cat-file: quote-format name in error when using -zToon Claes, Jan 16, 2023
  18. Phillip WoodJan 17, 2023
  19. 0/2 cat-file: quote-format name in error when using -zToon Claes, Mar 3, 2023
  20. 2/2 cat-file: quote-format name in error when using -zToon Claes, Mar 3, 2023
  21. 1/2 cat-file: extract printing batch error message into functionToon Claes, Mar 3, 2023
  22. Junio C HamanoMar 3, 2023
  23. Junio C HamanoMar 3, 2023
  24. 0/1 cat-file: quote-format name in error when using -zToon Claes, May 10, 2023
  25. 1/1 cat-file: quote-format name in error when using -zToon Claes, May 10, 2023
  26. Junio C HamanoMay 10, 2023
  27. Toon ClaesMay 12, 2023
  28. Junio C HamanoMay 12, 2023
  29. Phillip WoodMay 15, 2023
  30. Junio C HamanoMay 15, 2023
  31. Phillip WoodJun 2, 2023
  32. Junio C HamanoMar 3, 2023

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.