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

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

From
Kirill Smelkov <kirr@mns.spb.ru>
Date
Feb 5, 2014, 16:57 UTC
Message-ID
<975fbde9bdd2c5aad7376e398ca8001b9a41d2d6.1391619218.git.kirr@mns.spb.ru>
In-Reply-To
<cover.1391619218.git.kirr@mns.spb.ru>

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.

Signed-off-by: Kirill Smelkov <kirr@mns.spb.ru>
---
 revision.c | 12 +-----------
 1 file changed, 1 insertion(+), 11 deletions(-)
diff --git a/revision.c b/revision.c
index 082dae6..bd027bc 100644
--- a/revision.c
+++ b/revision.c
@@ -497,24 +497,14 @@ static int rev_compare_tree(struct rev_info *revs,
 static int rev_same_tree_as_empty(struct rev_info *revs, struct commit *commit)
 {
 	int retval;
-	void *tree;
-	unsigned long size;
-	struct tree_desc empty, real;
 	struct tree *t1 = commit->tree;
 
 	if (!t1)
 		return 0;
 
-	tree = read_object_with_reference(t1->object.sha1, tree_type, &size, NULL);
-	if (!tree)
-		return 0;
-	init_tree_desc(&real, tree, size);
-	init_tree_desc(&empty, "", 0);
-
 	tree_difference = REV_TREE_SAME;
 	DIFF_OPT_CLR(&revs->pruning, HAS_CHANGES);
-	retval = diff_tree(&empty, &real, "", &revs->pruning);
-	free(tree);
+	retval = diff_tree_sha1(NULL, t1->object.sha1, "", &revs->pruning);
 
 	return retval >= 0 && (tree_difference == REV_TREE_SAME);
 }
-- 
1.9.rc1.181.g641f458
Previous: Junio C HamanoNext: Jeff King
Message 7 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.