Re: [PATCH 4/4] config: allow including config from repository blobs
- From
Nguyen Thai Ngoc Duy <pclouds@gmail.com>
- Date
- Jan 27, 2012, 03:47 UTC
- Message-ID
- <CACsJy8ASXrmBvxj4DxjGiqYhPkr1Yp02CAyMqKrfyfrzaAw-2g@mail.gmail.com>
- In-Reply-To
- <4F211C0C.7060400@viscovery.net>
On Thu, Jan 26, 2012 at 4:25 PM, Johannes Sixt <j.sixt@viscovery.net> wrote:
Show 25 quoted lines
> 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