aboutsummaryrefslogtreecommitdiffstats
path: root/tree.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2007-06-06 15:43:24 -0700
committerJunio C Hamano <gitster@pobox.com>2007-06-06 15:43:24 -0700
commitd44c782bbd6b0e806e056f9e8ff8cd8e426e67a3 (patch)
treeca47f19971689badb2b644d038a72f4b0d9d8f13 /tree.c
parentf07dfbad29d473b35b5fecebf4baf77e32c7f97f (diff)
parente2ac7cb5fbcf1407003aa07cdcd14141527ea2e3 (diff)
downloadgit-d44c782bbd6b0e806e056f9e8ff8cd8e426e67a3.tar.gz
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
Diffstat (limited to 'tree.c')
-rw-r--r--tree.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/tree.c b/tree.c
index a3728270b4..04fe653a8e 100644
--- a/tree.c
+++ b/tree.c
@@ -173,8 +173,13 @@ static void track_tree_refs(struct tree *item)
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);