Hi, On Wed, 13 Feb 2008, Johannes Schindelin wrote: > On Wed, 13 Feb 2008, Jakub Narebski wrote: > > > Johannes Schindelin <Johannes.Schindelin@xxxxxx> writes: > > > > > On Wed, 13 Feb 2008, Jeff King wrote: > > > > } > > > > + if (!hashcmp(sha1, empty_tree.sha1)) > > > > + return &empty_tree; > > > > return NULL; > > > > } > > > > > > Heh. This is cute. But it is also a bit hard to reference, no? I > > > mean, you have to remember the SHA-1 of it... > > > > > > Maybe {} ? IOW something like this (on top of your two patches; feel free to merge): -- snipsnap -- [PATCH] Make {} synonymous to the empty tree Signed-off-by: Johannes Schindelin <Johannes.Schindelin@xxxxxx> --- cache.h | 5 +++++ sha1_file.c | 4 +--- sha1_name.c | 5 +++++ 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/cache.h b/cache.h index f4c56fa..b71f772 100644 --- a/cache.h +++ b/cache.h @@ -266,6 +266,11 @@ static inline enum object_type object_type(unsigned int mode) #define INFOATTRIBUTES_FILE "info/attributes" #define ATTRIBUTE_MACRO_PREFIX "[attr]" +/* empty tree sha1: 4b825dc642cb6eb9a060e54bf8d69288fbee4904 */ +#define EMPTY_TREE_SHA1 (unsigned char *)\ + "\x4b\x82\x5d\xc6\x42\xcb\x6e\xb9\xa0\x60" \ + "\xe5\x4b\xf8\xd6\x92\x88\xfb\xee\x49\x04" + extern int is_bare_repository_cfg; extern int is_bare_repository(void); extern int is_inside_git_dir(void); diff --git a/sha1_file.c b/sha1_file.c index 1a6c7c8..cba629a 100644 --- a/sha1_file.c +++ b/sha1_file.c @@ -1846,9 +1846,7 @@ static struct cached_object { static int cached_object_nr, cached_object_alloc; static struct cached_object empty_tree = { - /* empty tree sha1: 4b825dc642cb6eb9a060e54bf8d69288fbee4904 */ - "\x4b\x82\x5d\xc6\x42\xcb\x6e\xb9\xa0\x60" - "\xe5\x4b\xf8\xd6\x92\x88\xfb\xee\x49\x04", + EMPTY_TREE_SHA1, OBJ_TREE, "", 0 diff --git a/sha1_name.c b/sha1_name.c index 6cfd1f9..3a39a55 100644 --- a/sha1_name.c +++ b/sha1_name.c @@ -760,5 +760,10 @@ int get_sha1_with_mode(const char *name, unsigned char *sha1, unsigned *mode) return get_tree_entry(tree_sha1, cp+1, sha1, mode); } } + if (ret && !strcmp(name, "{}")) { + *mode = 0755; + hashcpy(sha1, EMPTY_TREE_SHA1); + ret = 0; + } return ret; } - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html