Skip to content

Commit 7913032

Browse files
Kirill Smelkovgitster
authored andcommitted
tree-diff: allow diff_tree_sha1 to accept NULL sha1
which would mean that corresponding tree - old or new - is empty. As followup patches will show, that functionality was already needed in several places of Git codebase, but there, we were preparing empty tree_desc objects by hand, with some code duplication. For handling sha1 = NULL case, let's reuse fill_tree_descriptor() which returns just empty tree_desc in that case. Signed-off-by: Kirill Smelkov <[email protected]> Signed-off-by: Junio C Hamano <[email protected]>
1 parent be961c2 commit 7913032

File tree

1 file changed

+4
-8
lines changed

1 file changed

+4
-8
lines changed

tree-diff.c

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -294,14 +294,10 @@ int diff_tree_sha1(const unsigned char *old, const unsigned char *new, const cha
294294
unsigned long size1, size2;
295295
int retval;
296296

297-
tree1 = read_object_with_reference(old, tree_type, &size1, NULL);
298-
if (!tree1)
299-
die("unable to read source tree (%s)", sha1_to_hex(old));
300-
tree2 = read_object_with_reference(new, tree_type, &size2, NULL);
301-
if (!tree2)
302-
die("unable to read destination tree (%s)", sha1_to_hex(new));
303-
init_tree_desc(&t1, tree1, size1);
304-
init_tree_desc(&t2, tree2, size2);
297+
tree1 = fill_tree_descriptor(&t1, old);
298+
tree2 = fill_tree_descriptor(&t2, new);
299+
size1 = t1.size;
300+
size2 = t2.size;
305301
retval = diff_tree(&t1, &t2, base, opt);
306302
if (!*base && DIFF_OPT_TST(opt, FOLLOW_RENAMES) && diff_might_be_rename()) {
307303
init_tree_desc(&t1, tree1, size1);

0 commit comments

Comments
 (0)