X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=tree-diff.c;h=37d235e06e2cbfbd761fd02d7e73648a14a60daf;hb=9d0524d42f340fc49f9e175d966afb7dce3854bb;hp=916f489c5b79e04035f96dd9f667f70efedb83fa;hpb=c9c3470aec3a1d753ac1e5f21358f6374c1add95;p=git.git diff --git a/tree-diff.c b/tree-diff.c index 916f489c5..37d235e06 100644 --- a/tree-diff.c +++ b/tree-diff.c @@ -39,8 +39,7 @@ static int compare_tree_entry(struct tree_desc *t1, struct tree_desc *t2, const show_entry(opt, "+", t2, base); return 1; } - if (!opt->find_copies_harder && - !memcmp(sha1, sha2, 20) && mode1 == mode2) + if (!opt->find_copies_harder && !hashcmp(sha1, sha2) && mode1 == mode2) return 0; /* @@ -216,6 +215,24 @@ int diff_tree_sha1(const unsigned char *old, const unsigned char *new, const cha return retval; } +int diff_root_tree_sha1(const unsigned char *new, const char *base, struct diff_options *opt) +{ + int retval; + void *tree; + struct tree_desc empty, real; + + tree = read_object_with_reference(new, tree_type, &real.size, NULL); + if (!tree) + die("unable to read root tree (%s)", sha1_to_hex(new)); + real.buf = tree; + + empty.size = 0; + empty.buf = ""; + retval = diff_tree(&empty, &real, base, opt); + free(tree); + return retval; +} + static int count_paths(const char **paths) { int i = 0;