diff options
author | Junio C Hamano <junkio@cox.net> | 2006-05-03 16:17:33 -0700 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2006-05-03 16:17:33 -0700 |
commit | 7873d984cfed8c563248dc96e9d4d3e1629f1d34 (patch) | |
tree | 16ea7a0b1bb583952fe1de2e5b569bc9bd47034a | |
parent | Merge branch 'jc/count' into next (diff) | |
parent | cache-tree: a bit more debugging support. (diff) | |
download | tgif-7873d984cfed8c563248dc96e9d4d3e1629f1d34.tar.xz |
Merge branch 'jc/cache-tree' into next
* jc/cache-tree:
cache-tree: a bit more debugging support.
read-tree: invalidate cache-tree entry when a new index entry is added.
Fix test-dump-cache-tree in one-tree disappeared case.
-rw-r--r-- | cache-tree.c | 8 | ||||
-rw-r--r-- | dump-cache-tree.c | 7 | ||||
-rw-r--r-- | read-tree.c | 2 |
3 files changed, 11 insertions, 6 deletions
diff --git a/cache-tree.c b/cache-tree.c index e452238ba7..a880c97b38 100644 --- a/cache-tree.c +++ b/cache-tree.c @@ -110,6 +110,10 @@ void cache_tree_invalidate_path(struct cache_tree *it, const char *path) int namelen; struct cache_tree_sub *down; +#if DEBUG + fprintf(stderr, "cache-tree invalidate <%s>\n", path); +#endif + if (!it) return; slash = strchr(path, '/'); @@ -335,7 +339,7 @@ static int update_one(struct cache_tree *it, offset += 20; #if DEBUG - fprintf(stderr, "cache-tree %o %.*s\n", + fprintf(stderr, "cache-tree update-one %o %.*s\n", mode, entlen, path + baselen); #endif } @@ -351,7 +355,7 @@ static int update_one(struct cache_tree *it, free(buffer); it->entry_count = i; #if DEBUG - fprintf(stderr, "cache-tree (%d ent, %d subtree) %s\n", + fprintf(stderr, "cache-tree update-one (%d ent, %d subtree) %s\n", it->entry_count, it->subtree_nr, sha1_to_hex(it->sha1)); #endif diff --git a/dump-cache-tree.c b/dump-cache-tree.c index fbea263dd9..1ccaf51773 100644 --- a/dump-cache-tree.c +++ b/dump-cache-tree.c @@ -21,10 +21,9 @@ static int dump_cache_tree(struct cache_tree *it, int i; int errs = 0; - if (!it) - return; - if (!ref) - die("internal error"); + if (!it || !ref) + /* missing in either */ + return 0; if (it->entry_count < 0) { dump_one(it, pfx, ""); diff --git a/read-tree.c b/read-tree.c index 66c0120f13..067fb95e9d 100644 --- a/read-tree.c +++ b/read-tree.c @@ -446,6 +446,8 @@ static int merged_entry(struct cache_entry *merge, struct cache_entry *old) invalidate_ce_path(old); } } + else + invalidate_ce_path(merge); merge->ce_flags &= ~htons(CE_STAGEMASK); add_cache_entry(merge, ADD_CACHE_OK_TO_ADD); return 1; |