revision.c: explain what tree_difference does

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>
This commit is contained in:
Junio C Hamano 2007-03-14 13:12:18 -07:00
parent 822cac0155
commit 0a4ba7f8c6

View File

@ -213,6 +213,13 @@ static int everybody_uninteresting(struct commit_list *orig)
return 1; 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 int tree_difference = REV_TREE_SAME;
static void file_add_remove(struct diff_options *options, 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.buf = "";
empty.size = 0; empty.size = 0;
tree_difference = 0; tree_difference = REV_TREE_SAME;
retval = diff_tree(&empty, &real, "", &revs->pruning); retval = diff_tree(&empty, &real, "", &revs->pruning);
free(tree); 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) static void try_to_simplify_commit(struct rev_info *revs, struct commit *commit)