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

Re: [PATCH v8 1/4] cache-tree: Create/update cache-tree on checkou

From
Junio C Hamano <gitster@pobox.com>
Date
Sep 2, 2014, 20:52 UTC
Message-ID
<xmqqfvg9zqw9.fsf@gitster.dls.corp.google.com>
In-Reply-To
<20140831120703.GA1240@serenity.lan>
John Keeping <john@keeping.me.uk> writes:
Show 33 quoted lines
> On Fri, Jul 11, 2014 at 09:44:33PM -0700, David Turner wrote:
>> When git checkout checks out a branch, create or update the
>> cache-tree so that subsequent operations are faster.
>> 
>> update_main_cache_tree learned a new flag, WRITE_TREE_REPAIR.  When
>> WRITE_TREE_REPAIR is set, portions of the cache-tree which do not
>> correspond to existing tree objects are invalidated (and portions which
>> do are marked as valid).  No new tree objects are created.
>> 
>> Signed-off-by: David Turner <dturner@twitter.com>
>> ---
>
> This causes an incorrect error message to be printed when switching
> branches with staged changes in a subdirectory.  The test case is pretty
> simple:
>
> 	git init test &&
> 	cd test &&
> 	mkdir sub &&
> 	echo one >sub/one &&
> 	git add sub/one &&
> 	git commit -m one &&
> 	echo two >sub/two &&
> 	git add sub/two &&
> 	git checkout -b test
>
> After this commit the output is:
>
> 	error: invalid object 040000 0000000000000000000000000000000000000000 for 'bar'
> 	A       bar/quux
> 	Switched to branch 'test'
>
> but the "error:" line should not be there.

Yeah, this seems to be broken and I am unhappy that I didn't notice it myself as I always use a version that is somewhat ahead of 'next' myself.

Previous: John KeepingNext: Junio C Hamano
Message 23 of 28 in “cache-tree: Create/update cache-tree on checkout”
  1. 1/4 cache-tree: Create/update cache-tree on checkoutDavid Turner, Jul 12, 2014
  2. 2/4 test-dump-cache-tree: invalid trees are not errorsDavid Turner, Jul 12, 2014
  3. 3/4 cache-tree: subdirectory testsDavid Turner, Jul 12, 2014
  4. 4/4 cache-tree: Write updated cache-tree after commitDavid Turner, Jul 12, 2014
  5. Duy NguyenJul 13, 2014
  6. Junio C HamanoJul 14, 2014
  7. Ramsay JonesJul 14, 2014
  8. Junio C HamanoJul 14, 2014
  9. Ramsay JonesJul 14, 2014
  10. Junio C HamanoJul 14, 2014
  11. David TurnerJul 14, 2014
  12. Duy NguyenJul 15, 2014
  13. Junio C HamanoJul 15, 2014
  14. Duy NguyenJul 15, 2014
  15. Junio C HamanoJul 15, 2014
  16. Duy NguyenJul 16, 2014
  17. Junio C HamanoJul 16, 2014
  18. Junio C HamanoJul 14, 2014
  19. lockfile: allow reopening a closed but still locked fileJunio C Hamano, Jul 14, 2014
  20. John KeepingAug 31, 2014
  21. David TurnerSep 1, 2014
  22. John KeepingSep 1, 2014
  23. Junio C HamanoSep 2, 2014
  24. Junio C HamanoSep 2, 2014
  25. cache-tree: propagate invalidation up when puntingJunio C Hamano, Sep 2, 2014
  26. cache-tree: do not try to use an invalidated subtree info to build a treeJunio C Hamano, Sep 2, 2014
  27. David TurnerSep 3, 2014
  28. Eric SunshineSep 3, 2014

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.