summaryrefslogtreecommitdiff
path: root/write-tree.c
diff options
context:
space:
mode:
authorJan Harkes <jaharkes@cs.cmu.edu>2005-06-25 18:23:36 (GMT)
committerLinus Torvalds <torvalds@ppc970.osdl.org>2005-06-25 20:41:10 (GMT)
commit7323aa11af1527d5a786d93ee34401c72c5df051 (patch)
tree593813d954f2e54e823057fc319c552bb5dd48f7 /write-tree.c
parent9de48752fedc4923502c522af0e1f5b94c5fea2e (diff)
downloadgit-7323aa11af1527d5a786d93ee34401c72c5df051.zip
git-7323aa11af1527d5a786d93ee34401c72c5df051.tar.gz
git-7323aa11af1527d5a786d93ee34401c72c5df051.tar.bz2
[PATCH] git-write-tree doesn't check alternate directories
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>
Diffstat (limited to 'write-tree.c')
-rw-r--r--write-tree.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/write-tree.c b/write-tree.c
index b8bf883..a794ea1 100644
--- a/write-tree.c
+++ b/write-tree.c
@@ -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)