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

Re: invalid tree and commit object

From
René Scharfe <l.s.r@web.de>
Date
May 21, 2020, 09:51 UTC
Message-ID
<b0dd3b35-5875-8d4a-e078-26c368b81506@web.de>
In-Reply-To
<xmqq1rnrvj8d.fsf@gitster.c.googlers.com>
Am 10.05.20 um 18:37 schrieb Junio C Hamano:
Show 11 quoted lines
> René Scharfe <l.s.r@web.de> writes:
>
>> Would a stack work?  When we see a candidate non-directory, we put
>> it on the stack.  When we see a candidate directory, we compare it
>> to the entry at the top of the stack using strcmp().  Equality
>> indicates a duplicate and we are done.  If the directory name is
>> less then we can pop the entry from the stack and check again, as
>> we're past the point where a duplicate would be.  Makes sense?
>
> Perfectly and quite excited ;-)  I wonder if we can do the same in
> the unpack-trees side.

Walking multiple trees in lockstep should be possible as well. We may want to include a bitmap indicating which trees contain the name in the stack entry, or any other necessary information.

And output of candidates would be delayed until the matching directory name is either reached or found to be missing, so it can be out of order. Sorting like in diffcore_fix_diff_index() is an option if the order is important and the entries are collected before being used further. Not sure if streaming in the right order could be done efficiently.

But lets see if that scheme works in fsck first. I'll send a patch for making testing a bit easier.

René
Previous: Junio C Hamano
Message 23 of 23 in “invalid tree and commit object”
  1. Brandon WilliamsMay 9, 2020
  2. René ScharfeMay 9, 2020
  3. Johannes SchindelinMay 9, 2020
  4. René ScharfeMay 9, 2020
  5. Junio C HamanoMay 9, 2020
  6. René ScharfeMay 9, 2020
  7. Junio C HamanoMay 9, 2020
  8. René ScharfeMay 10, 2020
  9. René ScharfeMay 10, 2020
  10. Junio C HamanoMay 11, 2020
  11. Brandon WilliamsMay 13, 2020
  12. René ScharfeMay 21, 2020
  13. 1/4 fsck: fix a typo in a commentRené Scharfe, May 21, 2020
  14. Denton LiuMay 21, 2020
  15. René ScharfeMay 21, 2020
  16. 2/4 t1450: increase test coverage of in-tree d/f detectionRené Scharfe, May 21, 2020
  17. Denton LiuMay 21, 2020
  18. René ScharfeMay 21, 2020
  19. Junio C HamanoMay 21, 2020
  20. 3/4 t1450: demonstrate undetected in-tree d/f conflictRené Scharfe, May 21, 2020
  21. 4/4 fsck: detect more in-tree d/f conflictsRené Scharfe, May 21, 2020
  22. Junio C HamanoMay 10, 2020
  23. René ScharfeMay 21, 2020

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.