From: Junio C Hamano Date: Wed, 6 Jun 2007 22:43:24 +0000 (-0700) Subject: Merge branch 'sv/objfixes' X-Git-Tag: v1.5.3-rc0~149 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/d44c782bbd6b0e806e056f9e8ff8cd8e426e67a3?hp=-c Merge branch 'sv/objfixes' * sv/objfixes: Don't assume tree entries that are not dirs are blobs git-cvsimport: Make sure to use $git_dir always instead of .git sometimes fix documentation of unpack-objects -n Accept dates before 2000/01/01 when specified as seconds since the epoch --- d44c782bbd6b0e806e056f9e8ff8cd8e426e67a3 diff --combined tree.c index a3728270b4,e946dac069..04fe653a8e --- a/tree.c +++ b/tree.c @@@ -157,7 -157,7 +157,7 @@@ static void track_tree_refs(struct tre /* Count how many entries there are.. */ init_tree_desc(&desc, item->buffer, item->size); while (tree_entry(&desc, &entry)) { - if (S_ISDIRLNK(entry.mode)) + if (S_ISGITLINK(entry.mode)) continue; n_refs++; } @@@ -169,12 -169,17 +169,17 @@@ while (tree_entry(&desc, &entry)) { struct object *obj; - if (S_ISDIRLNK(entry.mode)) + if (S_ISGITLINK(entry.mode)) continue; if (S_ISDIR(entry.mode)) obj = &lookup_tree(entry.sha1)->object; - else + else if (S_ISREG(entry.mode) || S_ISLNK(entry.mode)) obj = &lookup_blob(entry.sha1)->object; + else { + warning("in tree %s: entry %s has bad mode %.6o\n", + sha1_to_hex(item->object.sha1), entry.path, entry.mode); + obj = lookup_unknown_object(entry.sha1); + } refs->ref[i++] = obj; } set_object_refs(&item->object, refs);