Skip to content

Commit

Permalink
tree-diff: rename compare_tree_entry -> tree_entry_pathcmp
Browse files Browse the repository at this point in the history
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>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Kirill Smelkov authored and Junio C Hamano committed Mar 20, 2014
1 parent 903bba6 commit 9bc0619
Showing 1 changed file with 9 additions and 6 deletions.
15 changes: 9 additions & 6 deletions tree-diff.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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;
}
Expand Down Expand Up @@ -168,7 +171,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) {
Expand Down

0 comments on commit 9bc0619

Please sign in to comment.