diff options
| author | Lars Hjemli <hjemli@gmail.com> | 2011-06-18 14:32:43 +0200 | 
|---|---|---|
| committer | Lars Hjemli <hjemli@gmail.com> | 2011-06-18 14:59:01 +0200 | 
| commit | 9900ac022edfcfacee317d19a0f1d4d03b837b43 (patch) | |
| tree | 414b80acb0f0d442e08c7e6b276822c7c662cd8b | |
| parent | cgitrc.5.txt: document repo.module-link (diff) | |
| download | cgit-9900ac022edfcfacee317d19a0f1d4d03b837b43.tar.gz cgit-9900ac022edfcfacee317d19a0f1d4d03b837b43.tar.bz2 cgit-9900ac022edfcfacee317d19a0f1d4d03b837b43.zip | |
cgit.c: improve error message when git repo cannot be accessed
The current 'Not a git repository' error message is not very helpful,
since it doesn't state the cause of the problem.
This patch uses errno to provide a hint of the underlying problem. It
would have been even better to give the exact cause (e.g. for ENOENT it
would be nice to know which file/directory is missing), but that would
require reimplementing setup_git_directory_gently() which seems a bit
overkill.
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
Diffstat (limited to '')
| -rw-r--r-- | cgit.c | 6 | 
1 files changed, 5 insertions, 1 deletions
| @@ -403,13 +403,17 @@ static int prepare_repo_cmd(struct cgit_context *ctx)  	char *tmp;  	unsigned char sha1[20];  	int nongit = 0; +	int rc;  	setenv("GIT_DIR", ctx->repo->path, 1);  	setup_git_directory_gently(&nongit);  	if (nongit) { +		rc = errno;  		ctx->page.title = fmt("%s - %s", ctx->cfg.root_title,  				      "config error"); -		tmp = fmt("Not a git repository: '%s'", ctx->repo->path); +		tmp = fmt("Failed to open %s: %s", +			  ctx->repo->name, +			  rc ? strerror(rc) : "Not a valid git repository");  		ctx->repo = NULL;  		cgit_print_http_headers(ctx);  		cgit_print_docstart(ctx); | 
