summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLibravatar Junio C Hamano <junkio@cox.net>2006-05-03 16:17:33 -0700
committerLibravatar Junio C Hamano <junkio@cox.net>2006-05-03 16:17:33 -0700
commit7873d984cfed8c563248dc96e9d4d3e1629f1d34 (patch)
tree16ea7a0b1bb583952fe1de2e5b569bc9bd47034a
parentMerge branch 'jc/count' into next (diff)
parentcache-tree: a bit more debugging support. (diff)
downloadtgif-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.c8
-rw-r--r--dump-cache-tree.c7
-rw-r--r--read-tree.c2
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;