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

[PATCH 4/5] revision.c: explain what tree_difference does

From
Junio C Hamano <junkio@cox.net>
Date
Mar 14, 2007, 21:26 UTC
Message-ID
<7vd53b7bz8.fsf@assigned-by-dhcp.cox.net>
In-Reply-To
<7vwt1j8z0e.fsf@assigned-by-dhcp.cox.net>

This explains how tree_difference variable is used, and updates two places where the code knows symbolic constant REV_TREE_SAME is 0.

Signed-off-by: Junio C Hamano <junkio@cox.net>
---
 revision.c |   11 +++++++++--
 1 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/revision.c b/revision.c
index 3c2eb12..129d197 100644
--- a/revision.c
+++ b/revision.c
@@ -213,6 +213,13 @@ static int everybody_uninteresting(struct commit_list *orig)
 	return 1;
 }
 
+/*
+ * The goal is to get REV_TREE_NEW as the result only if the
+ * diff consists of all '+' (and no other changes), and
+ * REV_TREE_DIFFERENT otherwise (of course if the trees are
+ * the same we want REV_TREE_SAME).  That means that once we
+ * get to REV_TREE_DIFFERENT, we do not have to look any further.
+ */
 static int tree_difference = REV_TREE_SAME;
 
 static void file_add_remove(struct diff_options *options,
@@ -277,11 +284,11 @@ int rev_same_tree_as_empty(struct rev_info *revs, struct tree *t1)
 	empty.buf = "";
 	empty.size = 0;
 
-	tree_difference = 0;
+	tree_difference = REV_TREE_SAME;
 	retval = diff_tree(&empty, &real, "", &revs->pruning);
 	free(tree);
 
-	return retval >= 0 && !tree_difference;
+	return retval >= 0 && (tree_difference == REV_TREE_SAME);
 }
 
 static void try_to_simplify_commit(struct rev_info *revs, struct commit *commit)
-- 
1.5.0.3.1036.g6baf1
Previous: Junio C HamanoNext: Junio C Hamano
Message 22 of 23 in “diff --quick”
  1. 1/2 diff --quickJunio C Hamano, Mar 14, 2007
  2. 1/5 Remove unused diffcore_std_no_resolveJunio C Hamano, Mar 14, 2007
  3. 2/5 diff --quietJunio C Hamano, Mar 14, 2007
  4. Alex RiesenMar 14, 2007
  5. Alex RiesenMar 14, 2007
  6. Junio C HamanoMar 14, 2007
  7. Alex RiesenMar 15, 2007
  8. Alex RiesenMar 14, 2007
  9. Junio C HamanoMar 14, 2007
  10. Linus TorvaldsMar 15, 2007
  11. Junio C HamanoMar 15, 2007
  12. Junio C HamanoMar 15, 2007
  13. Linus TorvaldsMar 15, 2007
  14. Alex RiesenMar 15, 2007
  15. Johannes SchindelinMar 15, 2007
  16. Alex RiesenMar 15, 2007
  17. Johannes SchindelinMar 15, 2007
  18. Alex RiesenMar 15, 2007
  19. Johannes SchindelinMar 15, 2007
  20. Junio C HamanoMar 16, 2007
  21. 3/5 Teach --quiet to diff backends.Junio C Hamano, Mar 14, 2007
  22. 4/5 revision.c: explain what tree_difference doesJunio C Hamano, Mar 14, 2007
  23. 5/5 try-to-simplify-commit: use diff-tree --quiet machinery.Junio C Hamano, Mar 14, 2007

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.