Thread (7 messages) flat view 7 messages, 5 authors, 2017-11-30

Re: [PATCH V4] config: add --expiry-date

From: Stefan Beller <hidden>
Date: 2017-11-20 20:28:16

On Mon, Nov 20, 2017 at 9:04 AM, Jeff King [off-list ref] wrote:
On Sat, Nov 18, 2017 at 12:37:03PM +0900, Junio C Hamano wrote:
quoted
quoted
+int git_config_expiry_date(timestamp_t *timestamp, const char *var, const char *value)
+{
+   if (!value)
+           return config_error_nonbool(var);
+   if (parse_expiry_date(value, timestamp))
+           return error(_("'%s' for '%s' is not a valid timestamp"),
+                        value, var);
+   return 0;
+}
+
I think this is more correct even within the context of this
function than dying, which suggests the need for a slightly related
(which is not within the scope of this change) clean-up within this
file as a #leftoverbits task.  I think dying in these value parsers
goes against the point of having die_on_error bit in the
config-source structure; Heiko and Peff CC'ed for b2dc0945 ("do not
die when error in config parsing of buf occurs", 2013-07-12).
Yes, I agree that ideally the value parsers should avoid dying.
Unfortunately I think it will involve some heavy refactoring, since
git_config_bool(), for instance, does not even have a spot in its
interface to return an error.

Of course we can leave those other helpers in place and add a "gently"
form for each. It is really only submodule-config.c that wants to be
careful in its callback, so we could just port that. Skimming it over,
it looks like there are a few git_config_bool() and straight-up die()
calls that could be more forgiving.

+cc Stefan, who added the die(). It may be that we don't care that much
these days about recovering from broken .gitmodules files.
By that you mean commits like 37f52e9344 (submodule-config:
keep shallow recommendation around, 2016-05-26) for example?
That adds a git_config_bool to the submodule config machinery.

I agree that we'd want to be more careful, but for now I'd put it to the
#leftoverbits.

Thanks,
Stefan
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help