@matheusbsbs / matheus-bagliano / commits / 346245a1bb
Fork 0

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