From 4e6616ab77ed6a53f857d4b1082c4dc4140f34f5 Mon Sep 17 00:00:00 2001 From: Linus Torvalds Date: Sat, 9 Apr 2005 15:47:03 -0700 Subject: [PATCH] Make fsck-cache warn about old-style tree objects that have full pathnames in them. We're migrating away from that. This will cause tons of warnings for the current "sparse" archive, but hell, better now than later. --- fsck-cache.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/fsck-cache.c b/fsck-cache.c index 1123b6b7..c35acaa8 100644 --- a/fsck-cache.c +++ b/fsck-cache.c @@ -20,6 +20,8 @@ static int mark_sha1_seen(unsigned char *sha1, char *tag) static int fsck_tree(unsigned char *sha1, void *data, unsigned long size) { + int warn_old_tree = 1; + while (size) { int len = 1+strlen(data); unsigned char *file_sha1 = data + len; @@ -27,6 +29,13 @@ static int fsck_tree(unsigned char *sha1, void *data, unsigned long size) unsigned int mode; if (size < len + 20 || !path || sscanf(data, "%o", &mode) != 1) return -1; + + /* Warn about trees that don't do the recursive thing.. */ + if (warn_old_tree && strchr(path, '/')) { + fprintf(stderr, "warning: fsck-cache: tree %s has full pathnames in it\n", sha1_to_hex(sha1)); + warn_old_tree = 0; + } + data += len + 20; size -= len + 20; mark_needs_sha1(sha1, S_ISDIR(mode) ? "tree" : "blob", file_sha1); -- 2.11.0