# [PATCH] git-config: print error message if the config file cannot be read

5 messages from 2007-10-09 to 2007-10-12. Participants: Gerrit Pape, Johannes Schindelin, Johannes Sixt.
Thread: https://gitlist.dev/t/10212

## Gerrit Pape, 2007-10-09 12:51

Subject: [PATCH] git-config: print error message if the config file cannot be read
Message-ID: <20071009125102.1305.qmail@054bd0fc8effa5.315fe32.mid.smarden.org>
URL: https://gitlist.dev/e/20071009125102.1305.qmail%40054bd0fc8effa5.315fe32.mid.smarden.org

```
Instead of simply exiting with 255, print an error message including
the reason why the config file cannot be opened or read.

The problem was noticed by Joey Hess, reported through
 http://bugs.debian.org/445208

Signed-off-by: Gerrit Pape <pape@smarden.org>
---
 builtin-config.c |    8 ++++++--
 1 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/builtin-config.c b/builtin-config.c
index 1bb0ebb..750a403 100644
--- a/builtin-config.c
+++ b/builtin-config.c
@@ -235,8 +235,12 @@ int cmd_config(int argc, const char **argv, const char *prefix)
 		argv++;
 	}
 
-	if (show_all)
-		return git_config(show_all_config);
+	if (show_all) {
+		if (git_config(show_all_config) == -1)
+			die("unable to read config file %s: %s",
+			    getenv(CONFIG_ENVIRONMENT), strerror(errno));
+		return 0;
+	}
 	switch (argc) {
 	case 2:
 		return get_value(argv[1], NULL);
-- 
1.5.3.4

```

## Johannes Schindelin, 2007-10-09 13:16

Subject: Re: [PATCH] git-config: print error message if the config file cannot be read
Message-ID: <Pine.LNX.4.64.0710091416090.4174@racer.site>
URL: https://gitlist.dev/e/Pine.LNX.4.64.0710091416090.4174%40racer.site
In-Reply-To: <20071009125102.1305.qmail@054bd0fc8effa5.315fe32.mid.smarden.org>

```
Hi,

On Tue, 9 Oct 2007, Gerrit Pape wrote:

> +		if (git_config(show_all_config) == -1)

I'd rather check for < 0, just for future proofing.

Ciao,
Dscho

```

## Johannes Sixt, 2007-10-09 13:30

Subject: Re: [PATCH] git-config: print error message if the config file cannot be read
Message-ID: <470B8286.5060006@viscovery.net>
URL: https://gitlist.dev/e/470B8286.5060006%40viscovery.net
In-Reply-To: <20071009125102.1305.qmail@054bd0fc8effa5.315fe32.mid.smarden.org>

```
Gerrit Pape schrieb:
> @@ -235,8 +235,12 @@ int cmd_config(int argc, const char **argv, const char *prefix)
>  		argv++;
>  	}
>  
> -	if (show_all)
> -		return git_config(show_all_config);
> +	if (show_all) {
> +		if (git_config(show_all_config) == -1)
> +			die("unable to read config file %s: %s",
> +			    getenv(CONFIG_ENVIRONMENT), strerror(errno));

I don't think that this works well: If there are no config files at all, 
then we don't want to see an error - just as if the config file were empty.

Also, I don't think that errno is reliable at this point.

You probably want to see an error message *only* if you have supplied a file 
name with --file.

-- Hannes

```

## Gerrit Pape, 2007-10-12 11:40

Subject: [PATCH amend] git-config: print error message if the config file cannot be read
Message-ID: <20071012114057.30803.qmail@12f4c67b8560e2.315fe32.mid.smarden.org>
URL: https://gitlist.dev/e/20071012114057.30803.qmail%4012f4c67b8560e2.315fe32.mid.smarden.org
In-Reply-To: <470B8286.5060006@viscovery.net>

```
Instead of simply exiting with 255, print an error message including
the reason why a config file specified through --file cannot be opened
or read.

The problem was noticed by Joey Hess, reported through
 http://bugs.debian.org/445208
---

On Tue, Oct 09, 2007 at 02:16:41PM +0100, Johannes Schindelin wrote:
> On Tue, 9 Oct 2007, Gerrit Pape wrote:
> > +           if (git_config(show_all_config) == -1)
> I'd rather check for < 0, just for future proofing.

Okay.

On Tue, Oct 09, 2007 at 03:30:46PM +0200, Johannes Sixt wrote:
> Gerrit Pape schrieb:
> >+    if (show_all) {
> >+            if (git_config(show_all_config) == -1)
> >+                    die("unable to read config file %s: %s",
> >+                        getenv(CONFIG_ENVIRONMENT), strerror(errno));
> I don't think that this works well: If there are no config files at
> all, then we don't want to see an error - just as if the config file
> were empty.
>
> Also, I don't think that errno is reliable at this point.
>
> You probably want to see an error message *only* if you have supplied
> a file name with --file.

I changed the patch to die() only if --file was sepcified, and errno is
not 0.

Thanks, Gerrit.


 builtin-config.c |    8 ++++++--
 1 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/builtin-config.c b/builtin-config.c
index 4444d52..e5bf791 100644
--- a/builtin-config.c
+++ b/builtin-config.c
@@ -172,8 +172,12 @@ int cmd_config(int argc, const char **argv, const char *prefix)
 			type = T_INT;
 		else if (!strcmp(argv[1], "--bool"))
 			type = T_BOOL;
-		else if (!strcmp(argv[1], "--list") || !strcmp(argv[1], "-l"))
-			return git_config(show_all_config);
+		else if (!strcmp(argv[1], "--list") || !strcmp(argv[1], "-l")) {
+			if (git_config(show_all_config) < 0 && file && errno)
+				die("unable to read config file %s: %s", file,
+				    strerror(errno));
+			return 0;
+		}
 		else if (!strcmp(argv[1], "--global")) {
 			char *home = getenv("HOME");
 			if (home) {
-- 
1.5.3.4

```

## Johannes Sixt, 2007-10-12 11:59

Subject: Re: [PATCH amend] git-config: print error message if the config file cannot be read
Message-ID: <470F61B0.40907@viscovery.net>
URL: https://gitlist.dev/e/470F61B0.40907%40viscovery.net
In-Reply-To: <20071012114057.30803.qmail@12f4c67b8560e2.315fe32.mid.smarden.org>

```
Gerrit Pape schrieb:
>> You probably want to see an error message *only* if you have supplied
>> a file name with --file.
> 
> I changed the patch to die() only if --file was sepcified, and errno is
> not 0.

Thanks. I can live with that. ;)

-- Hannes

```
