X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=cache-tree.c;h=6369cc7c536ba7b82a6afcb191628beefe889b72;hb=9cb18f56fdee6885884f5f08bd5335a42d9034dc;hp=d388848dd25db917e9bac5a8fd95cd89d214f5d8;hpb=65606f3530b2d93eb522fdd1a66970a2b252ae94;p=git.git diff --git a/cache-tree.c b/cache-tree.c index d388848dd..6369cc7c5 100644 --- a/cache-tree.c +++ b/cache-tree.c @@ -2,7 +2,9 @@ #include "tree.h" #include "cache-tree.h" +#ifndef DEBUG #define DEBUG 0 +#endif struct cache_tree *cache_tree(void) { @@ -280,6 +282,8 @@ static int update_one(struct cache_tree *it, baselen + sublen + 1, missing_ok, dryrun); + if (subcnt < 0) + return subcnt; i += subcnt - 1; sub->used = 1; } @@ -322,7 +326,7 @@ static int update_one(struct cache_tree *it, mode = ntohl(ce->ce_mode); entlen = pathlen - baselen; } - if (!missing_ok && !has_sha1_file(sha1)) + if (mode != S_IFDIRLNK && !missing_ok && !has_sha1_file(sha1)) return error("invalid object %s", sha1_to_hex(sha1)); if (!ce->ce_mode)