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

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

From
Johannes Schindelin <johannes.schindelin@gmx.de>
Date
Nov 18, 2006, 12:58 UTC
Message-ID
<Pine.LNX.4.63.0611181356300.13772@wbgn013.biozentrum.uni-wuerzburg.de>
In-Reply-To
<7vu00ymhk1.fsf@assigned-by-dhcp.cox.net>
Hi,
On Fri, 17 Nov 2006, Junio C Hamano wrote:
Show 20 quoted lines
> Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:
> 
> >> 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.

How about putting yet more meaning into nr_parents: if it is negative, it is a shallow commit, but write_shallow_commits() only writes the SHA1 if nr_parents is -1. Hmm?

Ciao, Dscho

Previous: Junio C Hamano
Message 7 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.