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

Re: [PATCH 4/5] allow deepening of a shallow repository

From
Junio C Hamano <junkio@cox.net>
Date
Nov 17, 2006, 11:35 UTC
Message-ID
<7vu00ymhk1.fsf@assigned-by-dhcp.cox.net>
In-Reply-To
<Pine.LNX.4.63.0611171050440.13772@wbgn013.biozentrum.uni-wuerzburg.de>
Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:
Show 9 quoted lines
>> Although I am reasonably sure we can eventually make it work, it
>> is very subtle and fragile -- somebody touching this code can
>> easily break it.
>
> I fully agree. Even the OA did not understand the code fully ;-)
>
> How about adding "int force_reparse" to the signature of 
> unregister_shallow()? (Just like we added "int cleanup" to 
> get_merge_bases() to avoid pilot errors.)

I do not think that's where its fragility lies. It is that any random place can later call parse_object() on the commit, after you elaborately pre-parsed it with shallow so that it appears to have fewer parents, with the expectation that nobody ever would clear the parsed bit and cause it to be reparsed again. With that assumption, find_common() manipulated the shallow entry after setting that scheme up. A mechanism to prevent the commit from getting re-parsed would have made it more robust.

Previous: Johannes SchindelinNext: Johannes Schindelin
Message 6 of 7 in “allow deepening of a shallow repository”
  1. 4/5 allow deepening of a shallow repositoryJohannes Schindelin, Oct 30, 2006
  2. Junio C HamanoNov 14, 2006
  3. Johannes SchindelinNov 14, 2006
  4. Junio C HamanoNov 17, 2006
  5. Johannes SchindelinNov 17, 2006
  6. Junio C HamanoNov 17, 2006
  7. Johannes SchindelinNov 18, 2006

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.