Skip to content

Commit

Permalink
revision: convert to using diff_tree_sha1()
Browse files Browse the repository at this point in the history
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>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Kirill Smelkov authored and Junio C Hamano committed Feb 5, 2014
1 parent 7bc4ec0 commit 6275c91
Showing 1 changed file with 1 addition and 11 deletions.
12 changes: 1 addition & 11 deletions revision.c
Original file line number Diff line number Diff line change
Expand Up @@ -496,24 +496,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);
}
Expand Down

0 comments on commit 6275c91

Please sign in to comment.