Staging
v0.5.1
v0.5.1
Revision 6c2f207b2316149ee8dfaf026e4a869ff9ab42f7 authored by Shawn O. Pearce on 05 November 2006, 05:37:23 UTC, committed by Junio C Hamano on 05 November 2006, 07:48:36 UTC
At least one older version of the Solaris C compiler doesn't support the newer C99 style struct initializers. To allow Git to compile on those systems use an archive description struct which is easier to initialize without the C99 struct initializer syntax. Also since the archives array is not used by anyone other than archive.c we can make it static. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
1 parent af8ffbe
dump-cache-tree.c
#include "cache.h"
#include "tree.h"
#include "cache-tree.h"
static void dump_one(struct cache_tree *it, const char *pfx, const char *x)
{
if (it->entry_count < 0)
printf("%-40s %s%s (%d subtrees)\n",
"invalid", x, pfx, it->subtree_nr);
else
printf("%s %s%s (%d entries, %d subtrees)\n",
sha1_to_hex(it->sha1), x, pfx,
it->entry_count, it->subtree_nr);
}
static int dump_cache_tree(struct cache_tree *it,
struct cache_tree *ref,
const char *pfx)
{
int i;
int errs = 0;
if (!it || !ref)
/* missing in either */
return 0;
if (it->entry_count < 0) {
dump_one(it, pfx, "");
dump_one(ref, pfx, "#(ref) ");
if (it->subtree_nr != ref->subtree_nr)
errs = 1;
}
else {
dump_one(it, pfx, "");
if (hashcmp(it->sha1, ref->sha1) ||
ref->entry_count != it->entry_count ||
ref->subtree_nr != it->subtree_nr) {
dump_one(ref, pfx, "#(ref) ");
errs = 1;
}
}
for (i = 0; i < it->subtree_nr; i++) {
char path[PATH_MAX];
struct cache_tree_sub *down = it->down[i];
struct cache_tree_sub *rdwn;
rdwn = cache_tree_sub(ref, down->name);
sprintf(path, "%s%.*s/", pfx, down->namelen, down->name);
if (dump_cache_tree(down->cache_tree, rdwn->cache_tree, path))
errs = 1;
}
return errs;
}
int main(int ac, char **av)
{
struct cache_tree *another = cache_tree();
if (read_cache() < 0)
die("unable to read index file");
cache_tree_update(another, active_cache, active_nr, 0, 1);
return dump_cache_tree(active_cache_tree, another, "");
}
Computing file changes ...