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

[PATCH 05/11] tree-diff: rename compare_tree_entry -> tree_entry_pathcmp

From
Kirill Smelkov <kirr@mns.spb.ru>
Date
Feb 7, 2014, 17:48 UTC
Message-ID
<dd82f6456fcd7efdbbd3ad82c364bc6974223f6c.1391794688.git.kirr@mns.spb.ru>
In-Reply-To
<cover.1391794688.git.kirr@mns.spb.ru>

Since previous commit, this function does not compare entry hashes, and mode are compared fully outside of it. So what it does is compare entry names and DIR bit in modes. Reflect this in its name.

Add documentation stating the semantics, and move the note about files/dirs comparison to it.

Signed-off-by: Kirill Smelkov <kirr@mns.spb.ru>
---
 tree-diff.c | 15 +++++++++------
 1 file changed, 9 insertions(+), 6 deletions(-)
diff --git a/tree-diff.c b/tree-diff.c
index 54a3d23..df90bbe 100644
--- a/tree-diff.c
+++ b/tree-diff.c
@@ -9,7 +9,14 @@
 static void show_path(struct strbuf *base, struct diff_options *opt,
 		      struct tree_desc *t1, struct tree_desc *t2);
 
-static int compare_tree_entry(struct tree_desc *t1, struct tree_desc *t2)
+/*
+ * Compare two tree entries, taking into account only path/S_ISDIR(mode),
+ * but not their sha1's.
+ *
+ * NOTE files and directories *always* compare differently, even when having
+ *      the same name - thanks to base_name_compare().
+ */
+static int tree_entry_pathcmp(struct tree_desc *t1, struct tree_desc *t2)
 {
 	unsigned mode1, mode2;
 	const char *path1, *path2;
@@ -22,10 +29,6 @@ static int compare_tree_entry(struct tree_desc *t1, struct tree_desc *t2)
 	pathlen1 = tree_entry_len(&t1->entry);
 	pathlen2 = tree_entry_len(&t2->entry);
 
-	/*
-	 * NOTE files and directories *always* compare differently,
-	 * even when having the same name.
-	 */
 	cmp = base_name_compare(path1, pathlen1, mode1, path2, pathlen2, mode2);
 	return cmp;
 }
@@ -171,7 +174,7 @@ int diff_tree(struct tree_desc *t1, struct tree_desc *t2,
 			continue;
 		}
 
-		cmp = compare_tree_entry(t1, t2);
+		cmp = tree_entry_pathcmp(t1, t2);
 
 		/* t1 = t2 */
 		if (cmp == 0) {
-- 
1.9.rc1.181.g641f458
Previous: Kirill SmelkovNext: Kirill Smelkov
Message 8 of 21 in “More preparatory work for multiparent tree-walker”
  1. 00/11 More preparatory work for multiparent tree-walkerKirill Smelkov, Feb 7, 2014
  2. 01/11 tree-diff: show_tree() is not neededKirill Smelkov, Feb 7, 2014
  3. 02/11 tree-diff: consolidate code for emitting diffs and recursion in one placeKirill Smelkov, Feb 7, 2014
  4. Junio C HamanoFeb 13, 2014
  5. Kirill SmelkovFeb 13, 2014
  6. 03/11 tree-diff: don't assume compare_tree_entry() returns -1,0,1Kirill Smelkov, Feb 7, 2014
  7. 04/11 tree-diff: move all action-taking code out of compare_tree_entry()Kirill Smelkov, Feb 7, 2014
  8. 05/11 tree-diff: rename compare_tree_entry -> tree_entry_pathcmpKirill Smelkov, Feb 7, 2014
  9. 06/11 tree-diff: show_path prototype is not needed anymoreKirill Smelkov, Feb 7, 2014
  10. 07/11 tree-diff: simplify tree_entry_pathcmpKirill Smelkov, Feb 7, 2014
  11. 08/11 tree-diff: remove special-case diff-emitting code for empty-tree casesKirill Smelkov, Feb 7, 2014
  12. 09/11 tree-diff: rework diff_tree interface to be sha1 basedKirill Smelkov, Feb 7, 2014
  13. 10/11 tree-diff: no need to call "full" diff_tree_sha1 from show_path()Kirill Smelkov, Feb 7, 2014
  14. 11/11 tree-diff: reuse base str(buf) memory on sub-tree recursionKirill Smelkov, Feb 7, 2014
  15. Kirill SmelkovFeb 13, 2014
  16. Junio C HamanoFeb 11, 2014
  17. Kirill SmelkovFeb 11, 2014
  18. Junio C HamanoFeb 11, 2014
  19. Kirill SmelkovFeb 12, 2014
  20. Junio C HamanoFeb 12, 2014
  21. Kirill SmelkovFeb 13, 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.