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

Re: [BUG] two-way read-tree can write null sha1s into index

From
Jeff King <peff@peff.net>
Date
Jan 3, 2013, 20:36 UTC
Message-ID
<20130103203606.GA8188@sigill.intra.peff.net>
In-Reply-To
<7vip7evwdo.fsf@alter.siamese.dyndns.org>
On Thu, Jan 03, 2013 at 12:34:27PM -0800, Junio C Hamano wrote:
Show 23 quoted lines
> Jeff King <peff@peff.net> writes:
> 
> > Or are you suggesting that the three-way case should always be protected
> > by checking that there are no unmerged entries before we start it? That
> > seems sane to me, but I haven't confirmed that that is the case.
> 
> I think the normal (and hopefully only) "-m -u O A B" use case of
> threeway is the bog-standard "git merge", which requires even more:
> your index must exactly match HEAD, even though you are allowed to
> have local changes in the working tree.
> 
> That requirement is not likely to change, as cleanly merged paths
> are automatically added to the index, so "diff --cached" should show
> only the changes from cleanly merged part, while "diff" should show
> paths that still needs user's help.
> 
> If we allowed local modification to the index (let alone conflicted
> entries in it) before the merge begins, the users would not be able
> to tell which paths are in what state after a half-merge stops and
> asks for help.  Updated paths may not have anything to do with the
> merge (i.e. earlier "git add" before the merge started), conflicting
> paths may not have anything to do with the merge (i.e. leftover
> conflicts before the merge started).

Oh, I agree it's insane to try to carry through unmerged entries. I'm just concerned that not all code paths are careful enough to check. They probably are, though, as a null sha1 in your index would be the least of your worries, and somebody would have noticed in the last 7 years.

-Peff
Previous: Junio C HamanoNext: Junio C Hamano
Message 16 of 22 in “null sha1 in trees”
  1. 0/3 null sha1 in treesJeff King, Jul 28, 2012
  2. 1/3 diff: do not use null sha1 as a sentinel valueJeff King, Jul 28, 2012
  3. 2/3 do not write null sha1s to on-disk indexJeff King, Jul 28, 2012
  4. Jonathan NiederDec 29, 2012
  5. Jeff KingDec 29, 2012
  6. Jonathan NiederDec 29, 2012
  7. Jeff KingDec 29, 2012
  8. Jonathan NiederDec 29, 2012
  9. Jeff KingDec 29, 2012
  10. [BUG] two-way read-tree can write null sha1s into indexJeff King, Dec 29, 2012
  11. Junio C HamanoJan 1, 2013
  12. Jeff KingJan 3, 2013
  13. Junio C HamanoJan 3, 2013
  14. Jeff KingJan 3, 2013
  15. Junio C HamanoJan 3, 2013
  16. Jeff KingJan 3, 2013
  17. Junio C HamanoJan 3, 2013
  18. Jeff KingJan 7, 2013
  19. Jonathan NiederDec 29, 2012
  20. 3/3 fsck: detect null sha1 in tree entriesJeff King, Jul 28, 2012
  21. Junio C HamanoJul 29, 2012
  22. Jeff KingJul 30, 2012

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.