Re: [PATCH 4/4] config: allow including config from repository blobs
- From
Johannes Sixt <j.sixt@viscovery.net>
- Date
- Jan 26, 2012, 09:25 UTC
- Message-ID
- <4F211C0C.7060400@viscovery.net>
- In-Reply-To
- <20120126074208.GD30474@sigill.intra.peff.net>
Am 1/26/2012 8:42, schrieb Jeff King:
Show 20 quoted lines
> +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