From: Johannes Sixt Date: Thu, 26 Jan 2012 09:25:32 GMT Subject: Re: [PATCH 4/4] config: allow including config from repository blobs Message-ID: <4F211C0C.7060400@viscovery.net> In-Reply-To: <20120126074208.GD30474@sigill.intra.peff.net> Am 1/26/2012 8:42, schrieb Jeff King: > +static int handle_ref_include(const char *ref, void *data) > +{ > + unsigned char sha1[20]; > + char *buf; > + unsigned long size; > + enum object_type type; > + int ret; > + > + if (get_sha1(ref, sha1)) > + return 0; > + buf = read_sha1_file(sha1, &type, &size); > + if (!buf) > + return error("unable to read include ref '%s'", ref); > + if (type != OBJ_BLOB) > + return error("include ref '%s' is not a blob", ref); > + > + ret = git_config_from_buffer(git_config_include, data, ref, buf, size); > + free(buf); > + return ret; > +} What happens if a ref cannot be resolved, for example due to repository corruption? Does git just emit an error and then carries on, or does it always die? Can I run at least git-fsck in such a case? -- Hannes