Skip to content

Commit

Permalink
Add test-dump-cache-tree
Browse files Browse the repository at this point in the history
This was useful in diagnosing the corrupt index.aux format
problem.  But do not bother building or installing it by
default.

Signed-off-by: Junio C Hamano <junkio@cox.net>
  • Loading branch information
Junio C Hamano committed Apr 24, 2006
1 parent a6e5642 commit 1744820
Show file tree
Hide file tree
Showing 3 changed files with 36 additions and 0 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -123,6 +123,7 @@ git-write-tree
git-core-*/?*
test-date
test-delta
test-dump-cache-tree
common-cmds.h
*.tar.gz
*.dsc
Expand Down
3 changes: 3 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -611,6 +611,9 @@ test-date$X: test-date.c date.o ctype.o
test-delta$X: test-delta.c diff-delta.o patch-delta.o
$(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $^ -lz

test-dump-cache-tree$X: dump-cache-tree.o $(GITLIBS)
$(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $(filter %.o,$^) $(LIBS)

check:
for i in *.c; do sparse $(ALL_CFLAGS) $(SPARSE_FLAGS) $$i || exit; done

Expand Down
32 changes: 32 additions & 0 deletions dump-cache-tree.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
#include "cache.h"
#include "tree.h"
#include "cache-tree.h"

static unsigned char active_cache_sha1[20];
static struct cache_tree *active_cache_tree;

static void dump_cache_tree(struct cache_tree *it, const char *pfx)
{
int i;
if (it->entry_count < 0)
printf("%-40s %s\n", "invalid", pfx);
else
printf("%s %s (%d entries)\n",
sha1_to_hex(it->sha1),
pfx, it->entry_count);
for (i = 0; i < it->subtree_nr; i++) {
char path[PATH_MAX];
struct cache_tree_sub *down = it->down[i];
sprintf(path, "%s%.*s/", pfx, down->namelen, down->name);
dump_cache_tree(down->cache_tree, path);
}
}

int main(int ac, char **av)
{
if (read_cache_1(active_cache_sha1) < 0)
die("unable to read index file");
active_cache_tree = read_cache_tree(active_cache_sha1);
dump_cache_tree(active_cache_tree, "");
return 0;
}

0 comments on commit 1744820

Please sign in to comment.