git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Matthieu Moy <Matthieu.Moy@grenoble-inp.fr>
To: Tanay Abhra <tanayabh@gmail.com>
Cc: Junio C Hamano <gitster@pobox.com>,
	git@vger.kernel.org, Ramkumar Ramachandra <artagnon@gmail.com>
Subject: Re: [PATCH v7 5/8] config: add `git_die_config()` to the config-set API
Date: Mon, 04 Aug 2014 22:04:13 +0200	[thread overview]
Message-ID: <vpqegwwauo2.fsf@anie.imag.fr> (raw)
In-Reply-To: <53DFD729.8090307@gmail.com> (Tanay Abhra's message of "Tue, 05 Aug 2014 00:25:37 +0530")

Tanay Abhra <tanayabh@gmail.com> writes:

> I was aping the old git_config() system, it also does exactly what you described
> above. for example, builtin/gc.c line 91,
>
> 		if (!strcmp(var, "gc.pruneexpire")) {
> 		if (value && strcmp(value, "now")) {
> 			unsigned long now = approxidate("now");
> 			if (approxidate(value) >= now)
> 				return error(_("Invalid %s: '%s'"), var, value);
> 		}
>
> would print,
>  	error: Invalid gc.pruneexpire: 'value'
> 	fatal: bad config variable 'gc.pruneexpire' at file line 15 in .git/config

It's good to do at least as well as the old system, but I agree with
Junio that it's suboptimal.

Having a single API call to replace

        error("'%s' must be between 1 and 3");
        git_config_die(key);

with stg like:

        git_config_die(key, "'%s' must be between 1 and 3");

in Junio's example would allow git_config_die to format the error
message the way it likes (i.e. it can be the same as before when you
introduce it, and improve afterwards).

I've never been disturbed by the quality of Git's error messages wrt
config files (it's not a compiler!), so having good quality messages is
not a high priority IMHO, but having a good API that as a side effect
can produce good error messages is important. If changing the error
messages requires rewritting all callers later, then we've missed the
point doing the refactoring now.

-- 
Matthieu Moy
http://www-verimag.imag.fr/~moy/

  reply	other threads:[~2014-08-04 20:04 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-08-01 17:05 [PATCH v7 0/8] Rewrite `git_config()` using config-set API Tanay Abhra
2014-08-01 17:05 ` [PATCH v7 1/8] config.c: mark error and warnings strings for translation Tanay Abhra
2014-08-01 17:05 ` [PATCH v7 2/8] config.c: fix accuracy of line number in errors Tanay Abhra
2014-08-04 13:41   ` Matthieu Moy
2014-08-01 17:05 ` [PATCH v7 3/8] add line number and file name info to `config_set` Tanay Abhra
2014-08-01 17:05 ` [PATCH v7 4/8] change `git_config()` return value to void Tanay Abhra
2014-08-01 17:05 ` [PATCH v7 5/8] config: add `git_die_config()` to the config-set API Tanay Abhra
2014-08-04 18:07   ` Junio C Hamano
2014-08-04 18:55     ` Tanay Abhra
2014-08-04 20:04       ` Matthieu Moy [this message]
2014-08-05 14:55         ` Tanay Abhra
2014-08-05 15:15           ` Matthieu Moy
2014-08-05 16:42             ` Junio C Hamano
2014-08-04 20:52       ` Junio C Hamano
2014-08-01 17:05 ` [PATCH v7 6/8] rewrite git_config() to use " Tanay Abhra
2014-08-01 17:05 ` [PATCH v7 7/8] add a test for semantic errors in config files Tanay Abhra
2014-08-04 18:13   ` Junio C Hamano
2014-08-01 17:05 ` [PATCH v7 8/8] add tests for `git_config_get_string_const()` Tanay Abhra
2014-08-04 13:43 ` [PATCH v7 0/8] Rewrite `git_config()` using config-set API Matthieu Moy

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=vpqegwwauo2.fsf@anie.imag.fr \
    --to=matthieu.moy@grenoble-inp.fr \
    --cc=artagnon@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=tanayabh@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).