unsigned directory : 1;
unsigned executable : 1;
unsigned symlink : 1;
unsigned directory : 1;
unsigned executable : 1;
unsigned symlink : 1;
unsigned int mode;
char *name;
union {
unsigned int mode;
char *name;
union {
struct tree *tree;
struct blob *blob;
} item;
struct tree *tree;
struct blob *blob;
} item;