hard-code the empty tree object
Now any commands may reference the empty tree object by its sha1 (4b825dc642cb6eb9a060e54bf8d69288fbee4904). This is useful for showing some diffs, especially for initial commits. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jeff King committed
Feb 13, 2008 at 06:25 UTC
346245a1bb6272dd370ba2f7b9bf86d3df5fed9a
1 file changed
+11
sha1_file.c
+11
@@ -1845,6 +1845,15 @@ static struct cached_object {
1845
} *cached_objects;
1846
static int cached_object_nr, cached_object_alloc;
1847
1848
+static struct cached_object empty_tree = {
1849
+ /* empty tree sha1: 4b825dc642cb6eb9a060e54bf8d69288fbee4904 */
1850
+ "\x4b\x82\x5d\xc6\x42\xcb\x6e\xb9\xa0\x60"
1851
+ "\xe5\x4b\xf8\xd6\x92\x88\xfb\xee\x49\x04",
1852
+ OBJ_TREE,
1853
+ "",
1854
+ 0
1855
+};
1856
+
1857
static struct cached_object *find_cached_object(const unsigned char *sha1)
1858
{
1859
int i;
@@ -1854,6 +1863,8 @@ static struct cached_object *find_cached_object(const unsigned char *sha1)
1863
if (!hashcmp(co->sha1, sha1))
1864
return co;
1865
}
1866
+ if (!hashcmp(sha1, empty_tree.sha1))
1867
+ return &empty_tree;
1868
return NULL;
1869
}
1870