From: Nguyen Thai Ngoc Duy Date: Fri, 27 Jan 2012 03:47:29 GMT Subject: Re: [PATCH 4/4] config: allow including config from repository blobs Message-ID: In-Reply-To: <4F211C0C.7060400@viscovery.net> On Thu, Jan 26, 2012 at 4:25 PM, Johannes Sixt wrote: > 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? Moreover, if I specify sha-1 in the config (it's discouraged but not forbidden from the code), can git-prune remove the blob? -- Duy