[PATCH] git-write-tree doesn't check alternate directories
authorJan Harkes <jaharkes@cs.cmu.edu>
Sat, 25 Jun 2005 18:23:36 +0000 (14:23 -0400)
committerLinus Torvalds <torvalds@ppc970.osdl.org>
Sat, 25 Jun 2005 20:41:10 +0000 (13:41 -0700)
git-write-tree failed when referenced objects only exist in the
GIT_ALTERNATE_OBJECT_DIRECTORIES path.

Signed-off-by: Jan Harkes <jaharkes@cs.cmu.edu>
Acked-by: Junio C Hamano <junkio@cox.net>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
write-tree.c

index b8bf883..a794ea1 100644 (file)
@@ -7,14 +7,13 @@
 
 static int check_valid_sha1(unsigned char *sha1)
 {
-       char *filename = sha1_file_name(sha1);
        int ret;
 
        /* If we were anal, we'd check that the sha1 of the contents actually matches */
-       ret = access(filename, R_OK);
-       if (ret)
-               perror(filename);
-       return ret;
+       ret = has_sha1_file(sha1);
+       if (ret == 0)
+               perror(sha1_file_name(sha1));
+       return ret ? 0 : -1;
 }
 
 static int write_tree(struct cache_entry **cachep, int maxentries, const char *base, int baselen, unsigned char *returnsha1)