{"thread":{"id":"1025","subject":"[PATCH] git-write-tree doesn't check alternate directories","startedAt":"2005-06-25T18:23:36Z","lastAt":"2005-06-25T18:23:36Z","messageCount":1,"participants":["Jan Harkes"],"isPatch":true,"patchVersion":1,"patchTotal":null},"messages":[{"id":"5269","messageId":"20050625182336.GA10425@delft.aura.cs.cmu.edu","threadId":"1025","inReplyTo":null,"subject":"[PATCH] git-write-tree doesn't check alternate directories","fromName":"Jan Harkes","fromEmail":"jaharkes@cs.cmu.edu","sentAt":"2005-06-25T18:23:36Z","receivedAt":"2005-06-25T18:23:36Z","isPatch":true,"sender":{"key":"jaharkes@cs.cmu.edu","avatar":"https://gravatar.com/avatar/cf95aecd150ca8ef33d6edc337ac4bb9e13aa4246fc3679257d578c7fddc1633?d=mp&s=160"},"body":"git-write-tree failed when referenced objects only exist in the\nGIT_ALTERNATE_OBJECT_DIRECTORIES path.\n\nSigned-off-by: Jan Harkes <jaharkes@cs.cmu.edu>\n\n\ndiff --git a/write-tree.c b/write-tree.c\n--- a/write-tree.c\n+++ b/write-tree.c\n@@ -7,14 +7,13 @@\n \n static int check_valid_sha1(unsigned char *sha1)\n {\n-\tchar *filename = sha1_file_name(sha1);\n \tint ret;\n \n \t/* If we were anal, we'd check that the sha1 of the contents actually matches */\n-\tret = access(filename, R_OK);\n-\tif (ret)\n-\t\tperror(filename);\n-\treturn ret;\n+\tret = has_sha1_file(sha1);\n+\tif (ret == 0)\n+\t\tperror(sha1_file_name(sha1));\n+\treturn ret ? 0 : -1;\n }\n \n static int write_tree(struct cache_entry **cachep, int maxentries, const char *base, int baselen, unsigned char *returnsha1)\n"}]}