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

Re: [PATCH 4/4] revision: convert to using diff_tree_sha1()

From
Jeff King <peff@peff.net>
Date
Feb 5, 2014, 17:25 UTC
Message-ID
<20140205172511.GA7268@sigill.intra.peff.net>
In-Reply-To
<975fbde9bdd2c5aad7376e398ca8001b9a41d2d6.1391619218.git.kirr@mns.spb.ru>
On Wed, Feb 05, 2014 at 08:57:12PM +0400, Kirill Smelkov wrote:
Show 12 quoted lines
> Since diff_tree_sha1() can now accept empty trees via NULL sha1, we
> could just call it without manually reading trees into tree_desc and
> duplicating code.
> 
> Besides, that
> 
> 	if (!tree)
> 		return 0;
> 
> looked suspect - we were saying an invalid tree != empty tree, but maybe it is
> better to just say the tree is invalid here, which is what diff_tree_sha1()
> does for such case.

I think that is sensible. The assertion that "invalid != empty" is probably sane, because we handle the empty tree as internal magic. But I do not see any reason we should be hitting this code path regularly with an invalid tree, short of repository corruption, so in practice I don't think it matters.

This does introduce a die() where there was not one previously, and that can make things harder to diagnose/debug in a corrupted repository. But it looks like this is limited to the history-simplification code, and I suspect that it is not commonly used in the case of corruption.

So I think the patch looks fine.
-Peff
Previous: Kirill SmelkovNext: Jeff King
Message 8 of 10 in “Teach diff_tree_sha1() to accept NULL sha1 for empty trees”
  1. 0/4 Teach diff_tree_sha1() to accept NULL sha1 for empty treesKirill Smelkov, Feb 5, 2014
  2. 1/4 tree-diff: allow diff_tree_sha1 to accept NULL sha1Kirill Smelkov, Feb 5, 2014
  3. 2/4 tree-diff: convert diff_root_tree_sha1() to just call diff_tree_sha1 with old=NULLKirill Smelkov, Feb 5, 2014
  4. 3/4 line-log: convert to using diff_tree_sha1()Kirill Smelkov, Feb 5, 2014
  5. Thomas RastFeb 6, 2014
  6. Junio C HamanoFeb 6, 2014
  7. 4/4 revision: convert to using diff_tree_sha1()Kirill Smelkov, Feb 5, 2014
  8. Jeff KingFeb 5, 2014
  9. Jeff KingFeb 5, 2014
  10. Junio C HamanoFeb 5, 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.