Re: [PATCH v6 06/19] fsck: Report the ID of the error/warning
- From
Johannes Schindelin <johannes.schindelin@gmx.de>
- Date
- Jun 19, 2015, 21:34 UTC
- Message-ID
- <118145527541c82e33599259c8e3e050@www.dscho.org>
- In-Reply-To
- <xmqqvbej7b13.fsf@gitster.dls.corp.google.com>
Hi Junio,
On 2015-06-19 21:28, Junio C Hamano wrote:
Show 50 quoted lines
> 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=warnOkay. 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