зеркало из https://github.com/microsoft/git.git
revision: convert to using diff_tree_sha1()
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>
This commit is contained in:
Родитель
7bc4ec01dd
Коммит
6275c91c08
12
revision.c
12
revision.c
|
@ -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);
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче