Re: [PATCH v6 06/19] fsck: Report the ID of the error/warning
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Jun 19, 2015, 23:26 UTC
- Message-ID
- <CAPc5daUm=h0+itLR-QcL2tMbeQ+oUe5p9Ki8qAsj47OFRX4LTw@mail.gmail.com>
- In-Reply-To
- <118145527541c82e33599259c8e3e050@www.dscho.org>
That "... can be made ..." was not my wish but more like "the way the code is structured it is possible for somebody to do such a thing easily, well done" compliment ;-)
The message names will have to be shown somewhere in the documentation, and in Documentation/ we try to use camelCase to show the word boundary; it would be better to match that, as this output is meant to be used there.
On Fri, Jun 19, 2015 at 2:34 PM, Johannes Schindelin <johannes.schindelin@gmx.de> wrote:
Show 58 quoted lines
> Hi Junio,
>
> On 2015-06-19 21:28, Junio C Hamano wrote:
>> Johannes Schindelin <johannes.schindelin@gmx.de> writes:
>>
>>> Some legacy code has objects with non-fatal fsck issues; To enable the
>>> user to ignore those issues, let's print out the ID (e.g. when
>>> encountering "missingemail", the user might want to call `git config
>>> --add receive.fsck.missingemail=warn`).
>>>
>>> Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
>>> ---
>>> fsck.c | 16 ++++++++++++++++
>>> t/t1450-fsck.sh | 4 ++--
>>> 2 files changed, 18 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/fsck.c b/fsck.c
>>> index 8e6faa8..0b3e18f 100644
>>> --- a/fsck.c
>>> +++ b/fsck.c
>>> @@ -190,6 +190,20 @@ void fsck_set_msg_types(struct fsck_options *options, const char *values)
>>> }
>>> }
>>>
>>> +static void append_msg_id(struct strbuf *sb, const char *msg_id)
>>> +{
>>> + for (;;) {
>>> + char c = *(msg_id)++;
>>> +
>>> + if (!c)
>>> + break;
>>> + if (c != '_')
>>> + strbuf_addch(sb, tolower(c));
>>> + }
>>> +
>>> + strbuf_addstr(sb, ": ");
>>> +}
>>> +
>>> __attribute__((format (printf, 4, 5)))
>>> static int report(struct fsck_options *options, struct object *object,
>>> enum fsck_msg_id id, const char *fmt, ...)
>>> @@ -198,6 +212,8 @@ static int report(struct fsck_options *options, struct object *object,
>>> struct strbuf sb = STRBUF_INIT;
>>> int msg_type = fsck_msg_type(id, options), result;
>>>
>>> + append_msg_id(&sb, msg_id_info[id].id_string);
>>
>>
>> Nice. The append function can be made a bit more context sensitive
>> to upcase a char immediately after _ to make it easier to cut and
>> paste into "git config" and keep the result readable, I think.
>>
>> git config --add receive.fsck.missingEmail=warn
>
> Okay. I camelCased the IDs; it is a bit sore on my eyes in the command-line output, and the config variables are case-insensitive, anyway, but your wish is my command... I changed it locally, it will be part of v7.
>
> Ciao,
> Dscho