All of lore.kernel.org
 help / color / mirror / Atom feed
From: Johannes Schindelin <Johannes.Schindelin@gmx.de>
To: Junio C Hamano <gitster@pobox.com>
Cc: git@vger.kernel.org, Michael Haggerty <mhagger@alum.mit.edu>
Subject: Re: [PATCH 04/18] Offer a function to demote fsck errors to warnings
Date: Tue, 23 Dec 2014 11:53:36 +0100 (CET)	[thread overview]
Message-ID: <alpine.DEB.1.00.1412231051320.21312@s15462909.onlinehome-server.info> (raw)
In-Reply-To: <xmqqlhlz6zti.fsf@gitster.dls.corp.google.com>

[-- Attachment #1: Type: TEXT/PLAIN, Size: 5711 bytes --]

Hi Junio,

On Mon, 22 Dec 2014, Junio C Hamano wrote:

> Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:
> 
> > For example, try to spot the error here:
> >
> > 	...
> > 	F(ALMOST_HAPPY, INFO) \
> > 	F(CANNOT_RECOVER, ERROR) \
> > 	F(COFFEE_IS_EMPTY, WARN) \
> > 	F(JUST_BEING_CHATTY, INFO) \
> > 	F(LIFE_IS_GOOD, INFO) \
> > 	F(MISSING_SOMETHING_VITAL, FATAL_ERROR) \
> > 	F(NEED_TO_SLEEP, WARN) \
> > 	F(SOMETHING_WENT_WRONG, ERROR) \
> > 	...
> 
> But that is not what is being suggested at all.  I already said that
> FIRST_SOMETHING is fine as a measure to initialize, didn't I?
> 
> I am only saying that if you have a place to store customized level,
> you should initialize that part with default levels and always look
> it up from that place at runtime.  It is perfectly fine for the
> initialization step to take advantage of the ordering and
> FIRST_SOMETHING constants.

Thanks for clarifying, I was worried that you wanted to encode the
severity levels explicitly (F(ID, LEVEL) instead of F(ID) in the correct
order). The DRY principle also suggests that we should not encode the
severity level in two ways (which would leave the door open for
inconsistencies). That means that we should not initialize a static array
of severity levels, but initialize the array using a loop.

Okay, now that we have established that the initial ordering by severity
makes sense, let's examine the initialization step.

Basically, our approaches differ only in *when* to initialize that array
of severity levels: you want to initialize it always, and I want to
initialize it only when the severity levels are customized by the caller.

Now, let's have a look how the fsck_options are currently initialized. My
code follows the convention established with strbufs, argv_arrays, etc:
there is a preprocessor definition (_DEFAULT, imitating the _INIT
definitions) that allows us to initialize such structs very conveniently.
Please note that no loop is required, and certainly no extra code has to
be called to initialize the struct. We get away with initializing that
array lazily in the fsck_strict_mode() function when we detect that it
needs to be initialized, being populated by the very same function that
provides the default settings before customization. This is a very robust
setup as the knowledge about, say, the size of that array is confined
strictly to fsck.c.

However, if we had to change the lookup such that it uses an array always,
we would have to introduce a function to initialize the struct, always, in
particular we would have to find a place to call that initialization
function in, say, builtin/fsck.c (actually, in every code path that calls
into the fsck machinery). Arguably, the code would get more complex –
introducing new call paths just to initialize the fsck_options struct –
and I would argue further that there is no gain from an elegance,
readability and maintenance point of view: whether the array is
initialized lazily or not, it will be initialized the exact same way. All
it means is that we have to introduce separate code paths because we would
separate explicitly the initialization from the configuration step.

Therefore, I do not believe that introducing an fsck_options_init() is
what you would really want.

An alternative would be to initialize the array at compile time – we would
have to violate the DRY principle for that, repeating the severity levels
many times over, and we could no longer confine the visibility to the
message IDs to fsck.c because not only the size of the array of severity
levels would have to be known to every user of fsck.h, but the exact
default severity levels themselves, to be able to initialize the struct.
But we could initialize the struct with a known set of settings via the
_DEFAULTS definition that way.

However, you already expressed slight disagreement with the preprocessor
magic needed to initialize both the enum and the array of message ID
strings from the same list in a way that lets the compiler ensure
consistency; I am afraid that if I were to modify _DEFAULTS to populate the
entire severity level array, the resulting code would find your utter
contempt.

I believe, therefore, that this is also not what you want.

So that leaves only one alternative: to initialize a global array with the
default severity levels at *some* stage. I have no idea what that stage
would be, therefore we would have to either establish ugly, and
DRY-violating, compile time initialization, or we would have to call a
function before using any of the fsck machinery – but that is fragile: it
is too easy to forget one call path and access an uninitialized array!
Worse, even if we *had* a fully initialized array of default severity
levels, we would still have to have an on-demand copy (i.e. lazy
initialization) of said array lest we modify the global defaults in
fsck_strict_mode()! Essentially, we would just *add* complexity to the
current solution, not replace it with anything simpler.

Therefore, I believe that you cannot be a fan of this alternative, either.

In short, I still find it much more elegant to determine the default
severity levels from the numeric enum values, and initialize the severity
level array only on demand, than to introduce a separate call to
initialize the array always, in particular since we would have to execute
that initialization loop *all* the time in the latter case – even if we do
not customize, let alone look up, any value – or clutter the code with
ugly, ugly preprocessor constructs.

And I hope that my arguments convinced you, too!

Ciao,
Dscho

  reply	other threads:[~2014-12-23 10:53 UTC|newest]

Thread overview: 275+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-12-08 16:13 [PATCH 00/18] Introduce an internal API to interact with the fsck machinery Johannes Schindelin
2014-12-08 16:14 ` [PATCH 01/18] Introduce fsck options Johannes Schindelin
2014-12-10 15:33   ` Junio C Hamano
2014-12-22 17:26     ` Johannes Schindelin
2014-12-22 17:32       ` Junio C Hamano
2014-12-08 16:14 ` [PATCH 02/18] Introduce identifiers for fsck messages Johannes Schindelin
2014-12-08 16:14 ` [PATCH 03/18] Provide a function to parse fsck message IDs Johannes Schindelin
2014-12-10 17:56   ` Junio C Hamano
2014-12-22 21:27     ` Johannes Schindelin
2014-12-08 16:14 ` [PATCH 04/18] Offer a function to demote fsck errors to warnings Johannes Schindelin
2014-12-10 18:00   ` Junio C Hamano
2014-12-22 21:43     ` Johannes Schindelin
2014-12-22 21:59       ` Junio C Hamano
2014-12-22 22:32         ` Johannes Schindelin
2014-12-22 22:40           ` Junio C Hamano
2014-12-22 22:55             ` Johannes Schindelin
2014-12-22 23:15               ` Junio C Hamano
2014-12-23 10:53                 ` Johannes Schindelin [this message]
2014-12-23 16:18                   ` Junio C Hamano
2014-12-23 16:30                     ` Johannes Schindelin
2014-12-23 17:20                       ` Junio C Hamano
2014-12-23 17:28                         ` Johannes Schindelin
2014-12-23 18:14                           ` Junio C Hamano
2014-12-23 18:23                             ` Johannes Schindelin
2014-12-08 16:14 ` [PATCH 05/18] Allow demoting errors to warnings via receive.fsck.<key> = warn Johannes Schindelin
2014-12-10 17:52   ` Junio C Hamano
2014-12-22 21:44     ` Johannes Schindelin
2014-12-08 16:14 ` [PATCH 06/18] fsck: report the ID of the error/warning Johannes Schindelin
2014-12-08 16:14 ` [PATCH 07/18] Make fsck_ident() warn-friendly Johannes Schindelin
2014-12-08 16:14 ` [PATCH 08/18] Make fsck_commit() warn-friendly Johannes Schindelin
2014-12-08 16:15 ` [PATCH 09/18] fsck: handle multiple authors in commits specially Johannes Schindelin
2014-12-10 18:04   ` Junio C Hamano
2014-12-22 21:53     ` Johannes Schindelin
2014-12-08 16:15 ` [PATCH 10/18] Make fsck_tag() warn-friendly Johannes Schindelin
2014-12-08 16:15 ` [PATCH 11/18] Add a simple test for receive.fsck.* Johannes Schindelin
2014-12-08 16:15 ` [PATCH 12/18] Disallow demoting grave fsck errors to warnings Johannes Schindelin
2014-12-10 18:06   ` Junio C Hamano
2014-12-22 21:56     ` Johannes Schindelin
2014-12-08 16:15 ` [PATCH 13/18] Optionally ignore specific fsck issues completely Johannes Schindelin
2014-12-10 18:07   ` Junio C Hamano
2014-12-08 16:15 ` [PATCH 14/18] fsck: allow upgrading fsck warnings to errors Johannes Schindelin
2014-12-10 18:08   ` Junio C Hamano
2014-12-22 22:01     ` Johannes Schindelin
2014-12-22 22:15       ` Junio C Hamano
2014-12-22 22:39         ` Johannes Schindelin
2014-12-08 16:15 ` [PATCH 15/18] Document the new receive.fsck.* options Johannes Schindelin
2014-12-08 16:15 ` [PATCH 16/18] fsck: support demoting errors to warnings Johannes Schindelin
2014-12-10 18:15   ` Junio C Hamano
2014-12-22 22:25     ` Johannes Schindelin
2014-12-22 22:34       ` Junio C Hamano
2014-12-22 22:46         ` Johannes Schindelin
2014-12-22 22:50           ` Junio C Hamano
2014-12-22 22:57             ` Johannes Schindelin
2014-12-22 23:13               ` Junio C Hamano
2014-12-23  9:50                 ` Johannes Schindelin
2014-12-23 16:32                   ` Junio C Hamano
2014-12-23 16:47                     ` Johannes Schindelin
2014-12-23 17:14                       ` Junio C Hamano
2014-12-23 17:41                         ` Johannes Schindelin
2014-12-23 17:56                           ` Junio C Hamano
2014-12-23 18:06                             ` Johannes Schindelin
2014-12-23 18:09                             ` Junio C Hamano
2014-12-23 18:14                               ` Johannes Schindelin
2014-12-23 18:56                                 ` Junio C Hamano
2014-12-23 20:12                                   ` Johannes Schindelin
2014-12-23 21:17                                     ` Junio C Hamano
2015-01-22 15:49                         ` Michael Haggerty
2015-01-22 17:17                           ` Johannes Schindelin
2015-01-31 20:41                             ` Johannes Schindelin
2014-12-23 17:07                     ` Junio C Hamano
2014-12-08 16:15 ` [PATCH 17/18] Introduce `git fsck --quick` Johannes Schindelin
2014-12-08 16:15 ` [PATCH 18/18] git receive-pack: support excluding objects from fsck'ing Johannes Schindelin
2014-12-10 18:23   ` Junio C Hamano
2014-12-22 22:19     ` Johannes Schindelin
2014-12-10 18:34 ` [PATCH 00/18] Introduce an internal API to interact with the fsck machinery Junio C Hamano
2015-01-19 15:49   ` [PATCH v2 " Johannes Schindelin
2015-01-19 15:50     ` [PATCH v2 01/18] fsck: Introduce fsck options Johannes Schindelin
2015-01-19 15:50     ` [PATCH v2 02/18] fsck: Introduce identifiers for fsck messages Johannes Schindelin
2015-01-19 15:50     ` [PATCH v2 03/18] fsck: Provide a function to parse fsck message IDs Johannes Schindelin
2015-01-19 15:50     ` [PATCH v2 04/18] fsck: Offer a function to demote fsck errors to warnings Johannes Schindelin
2015-01-21  8:49       ` Junio C Hamano
2015-01-21 17:42         ` Johannes Schindelin
2015-01-19 15:50     ` [PATCH v2 05/18] fsck: Allow demoting errors to warnings via receive.fsck.warn = <key> Johannes Schindelin
2015-01-21  8:54       ` Junio C Hamano
2015-01-21 18:01         ` Johannes Schindelin
2015-01-21 21:47           ` Junio C Hamano
2015-01-22  9:35             ` Johannes Schindelin
2015-01-19 15:50     ` [PATCH v2 06/18] fsck: Report the ID of the error/warning Johannes Schindelin
2015-01-19 15:50     ` [PATCH v2 07/18] fsck: Make fsck_ident() warn-friendly Johannes Schindelin
2015-01-21  8:56       ` Junio C Hamano
2015-01-19 15:50     ` [PATCH v2 08/18] fsck: Make fsck_commit() warn-friendly Johannes Schindelin
2015-01-19 15:51     ` [PATCH v2 09/18] fsck: Handle multiple authors in commits specially Johannes Schindelin
2015-01-19 15:51     ` [PATCH v2 10/18] fsck: Make fsck_tag() warn-friendly Johannes Schindelin
2015-01-19 15:51     ` [PATCH v2 11/18] fsck: Add a simple test for receive.fsck.* Johannes Schindelin
2015-01-21  8:59       ` Junio C Hamano
2015-01-21 18:14         ` Johannes Schindelin
2015-01-19 15:51     ` [PATCH v2 12/18] fsck: Disallow demoting grave fsck errors to warnings Johannes Schindelin
2015-01-19 15:51     ` [PATCH v2 13/18] fsck: Optionally ignore specific fsck issues completely Johannes Schindelin
2015-01-19 15:51     ` [PATCH v2 14/18] fsck: Allow upgrading fsck warnings to errors Johannes Schindelin
2015-01-19 15:51     ` [PATCH v2 15/18] fsck: Document the new receive.fsck.* options Johannes Schindelin
2015-01-19 22:44       ` Eric Sunshine
2015-01-20  7:24         ` Johannes Schindelin
2015-01-19 15:51     ` [PATCH v2 16/18] fsck: Support demoting errors to warnings Johannes Schindelin
2015-01-19 15:51     ` [PATCH v2 17/18] fsck: Introduce `git fsck --quick` Johannes Schindelin
2015-01-19 15:52     ` [PATCH v2 18/18] fsck: git receive-pack: support excluding objects from fsck'ing Johannes Schindelin
2015-01-21  9:02       ` Junio C Hamano
2015-01-21 18:17         ` Johannes Schindelin
2015-01-21  9:17     ` [PATCH v2 00/18] Introduce an internal API to interact with the fsck machinery Junio C Hamano
2015-01-21 18:24       ` Johannes Schindelin
2015-01-21 19:23   ` [PATCH v3 00/19] " Johannes Schindelin
2015-01-21 19:24     ` [PATCH v3 01/19] fsck: Introduce fsck options Johannes Schindelin
2015-01-21 19:24     ` [PATCH v3 02/19] fsck: Introduce identifiers for fsck messages Johannes Schindelin
2015-01-21 19:24     ` [PATCH v3 03/19] fsck: Provide a function to parse fsck message IDs Johannes Schindelin
2015-01-21 19:24     ` [PATCH v3 04/19] fsck: Offer a function to demote fsck errors to warnings Johannes Schindelin
2015-01-21 19:24     ` [PATCH v3 05/19] fsck: Allow demoting errors to warnings via receive.fsck.warn = <key> Johannes Schindelin
2015-01-21 19:25     ` [PATCH v3 06/19] fsck: Report the ID of the error/warning Johannes Schindelin
2015-01-21 19:25     ` [PATCH v3 07/19] fsck: Make fsck_ident() warn-friendly Johannes Schindelin
2015-01-21 19:25     ` [PATCH v3 08/19] fsck: Make fsck_commit() warn-friendly Johannes Schindelin
2015-01-21 19:25     ` [PATCH v3 09/19] fsck: Handle multiple authors in commits specially Johannes Schindelin
2015-01-21 19:25     ` [PATCH v3 10/19] fsck: Make fsck_tag() warn-friendly Johannes Schindelin
2015-01-21 19:25     ` [PATCH v3 11/19] fsck: Add a simple test for receive.fsck.* Johannes Schindelin
2015-01-21 19:26     ` [PATCH v3 12/19] fsck: Disallow demoting grave fsck errors to warnings Johannes Schindelin
2015-01-21 19:26     ` [PATCH v3 13/19] fsck: Optionally ignore specific fsck issues completely Johannes Schindelin
2015-01-21 19:26     ` [PATCH v3 14/19] fsck: Allow upgrading fsck warnings to errors Johannes Schindelin
2015-01-21 19:27     ` [PATCH v3 15/19] fsck: Document the new receive.fsck.* options Johannes Schindelin
2015-01-21 19:27     ` [PATCH v3 16/19] fsck: Support demoting errors to warnings Johannes Schindelin
2015-01-21 19:27     ` [PATCH v3 17/19] fsck: Introduce `git fsck --quick` Johannes Schindelin
2015-01-21 19:27     ` [PATCH v3 18/19] fsck: git receive-pack: support excluding objects from fsck'ing Johannes Schindelin
2015-01-21 19:27     ` [PATCH v3 19/19] fsck: support ignoring objects in `git fsck` via fsck.skiplist Johannes Schindelin
2015-01-31 21:04   ` [PATCH v4 00/19] Introduce an internal API to interact with the fsck machinery Johannes Schindelin
2015-01-31 21:04     ` [PATCH v4 01/19] fsck: Introduce fsck options Johannes Schindelin
2015-01-31 21:04     ` [PATCH v4 02/19] fsck: Introduce identifiers for fsck messages Johannes Schindelin
2015-01-31 21:04     ` [PATCH v4 03/19] fsck: Provide a function to parse fsck message IDs Johannes Schindelin
2015-01-31 21:05     ` [PATCH v4 05/19] fsck: Allow demoting errors to warnings Johannes Schindelin
2015-01-31 21:05     ` [PATCH v4 04/19] fsck: Offer a function to demote fsck " Johannes Schindelin
2015-01-31 21:05     ` [PATCH v4 11/19] fsck: Add a simple test for receive.fsck.severity Johannes Schindelin
2015-01-31 21:05     ` [PATCH v4 12/19] fsck: Disallow demoting grave fsck errors to warnings Johannes Schindelin
2015-01-31 21:05     ` [PATCH v4 07/19] fsck: Make fsck_ident() warn-friendly Johannes Schindelin
2015-01-31 21:05     ` [PATCH v4 08/19] fsck: Make fsck_commit() warn-friendly Johannes Schindelin
2015-01-31 21:05     ` [PATCH v4 10/19] fsck: Make fsck_tag() warn-friendly Johannes Schindelin
2015-01-31 21:06     ` [PATCH v4 15/19] fsck: Document the new receive.fsck.severity options Johannes Schindelin
2015-01-31 21:06     ` [PATCH v4 09/19] fsck: Handle multiple authors in commits specially Johannes Schindelin
2015-01-31 21:06     ` [PATCH v4 14/19] fsck: Allow upgrading fsck warnings to errors Johannes Schindelin
2015-01-31 21:06     ` [PATCH v4 06/19] fsck: Report the ID of the error/warning Johannes Schindelin
2015-01-31 21:06     ` [PATCH v4 13/19] fsck: Optionally ignore specific fsck issues completely Johannes Schindelin
2015-01-31 21:06     ` [PATCH v4 16/19] fsck: Support demoting errors to warnings Johannes Schindelin
2015-01-31 21:06     ` [PATCH v4 17/19] fsck: Introduce `git fsck --quick` Johannes Schindelin
2015-01-31 21:06     ` [PATCH v4 18/19] fsck: git receive-pack: support excluding objects from fsck'ing Johannes Schindelin
2015-01-31 21:07     ` [PATCH v4 19/19] fsck: support ignoring objects in `git fsck` via fsck.skiplist Johannes Schindelin
2015-02-02 11:41     ` [PATCH v4 00/19] Introduce an internal API to interact with the fsck machinery Johannes Schindelin
2015-02-02 12:43       ` Michael Haggerty
2015-02-02 16:48         ` Johannes Schindelin
2015-02-03 15:11           ` Michael Haggerty
2015-02-03 16:33             ` Johannes Schindelin
2015-02-04  3:50               ` Junio C Hamano
2015-02-04 11:02                 ` Johannes Schindelin
2015-06-18 20:07     ` [PATCH v5 " Johannes Schindelin
2015-06-18 20:07       ` [PATCH v5 01/19] fsck: Introduce fsck options Johannes Schindelin
2015-06-18 20:07       ` [PATCH v5 02/19] fsck: Introduce identifiers for fsck messages Johannes Schindelin
2015-06-18 20:07       ` [PATCH v5 03/19] fsck: Provide a function to parse fsck message IDs Johannes Schindelin
2015-06-18 20:08       ` [PATCH v5 04/19] fsck: Offer a function to demote fsck errors to warnings Johannes Schindelin
2015-06-18 20:08       ` [PATCH v5 05/19] fsck (receive-pack): Allow demoting " Johannes Schindelin
2015-06-18 20:08       ` [PATCH v5 06/19] fsck: Report the ID of the error/warning Johannes Schindelin
2015-06-18 20:08       ` [PATCH v5 07/19] fsck: Make fsck_ident() warn-friendly Johannes Schindelin
2015-06-18 20:08       ` [PATCH v5 08/19] fsck: Make fsck_commit() warn-friendly Johannes Schindelin
2015-06-18 20:08       ` [PATCH v5 09/19] fsck: Handle multiple authors in commits specially Johannes Schindelin
2015-06-18 20:08       ` [PATCH v5 11/19] fsck: Add a simple test for receive.fsck.<msg-id> Johannes Schindelin
2015-06-18 20:09       ` [PATCH v5 10/19] fsck: Make fsck_tag() warn-friendly Johannes Schindelin
2015-06-18 20:09       ` [PATCH v5 12/19] fsck: Disallow demoting grave fsck errors to warnings Johannes Schindelin
2015-06-18 20:09       ` [PATCH v5 13/19] fsck: Optionally ignore specific fsck issues completely Johannes Schindelin
2015-06-18 20:09       ` [PATCH v5 14/19] fsck: Allow upgrading fsck warnings to errors Johannes Schindelin
2015-06-18 20:09       ` [PATCH v5 15/19] fsck: Document the new receive.fsck.<msg-id> options Johannes Schindelin
2015-06-18 20:09       ` [PATCH v5 16/19] fsck: Support demoting errors to warnings Johannes Schindelin
2015-06-18 20:09       ` [PATCH v5 17/19] fsck: Introduce `git fsck --quick` Johannes Schindelin
2015-06-18 20:10       ` [PATCH v5 18/19] fsck: git receive-pack: support excluding objects from fsck'ing Johannes Schindelin
2015-06-18 20:10       ` [PATCH v5 19/19] fsck: support ignoring objects in `git fsck` via fsck.skiplist Johannes Schindelin
2015-06-18 22:11       ` [PATCH v5 00/19] Introduce an internal API to interact with the fsck machinery Junio C Hamano
2015-06-19  0:04         ` Johannes Schindelin
2015-06-19 17:33           ` Junio C Hamano
2015-06-19 19:43             ` Johannes Schindelin
2015-06-19 13:32       ` [PATCH v6 " Johannes Schindelin
2015-06-19 13:32         ` [PATCH v6 01/19] fsck: Introduce fsck options Johannes Schindelin
2015-06-19 19:03           ` Junio C Hamano
2015-06-20 12:33             ` Johannes Schindelin
2015-06-19 13:32         ` [PATCH v6 02/19] fsck: Introduce identifiers for fsck messages Johannes Schindelin
2015-06-19 19:06           ` Junio C Hamano
2015-06-19 13:32         ` [PATCH v6 03/19] fsck: Provide a function to parse fsck message IDs Johannes Schindelin
2015-06-19 19:13           ` Junio C Hamano
2015-06-21 13:46             ` Johannes Schindelin
2015-06-19 13:33         ` [PATCH v6 04/19] fsck: Offer a function to demote fsck errors to warnings Johannes Schindelin
2015-06-19 19:26           ` Junio C Hamano
2015-06-21 13:59             ` Johannes Schindelin
2015-06-21 17:36               ` Junio C Hamano
2015-06-21 18:23                 ` Johannes Schindelin
2015-06-21 18:47                   ` Junio C Hamano
2015-06-22 15:24             ` Johannes Schindelin
2015-06-19 13:33         ` [PATCH v6 05/19] fsck (receive-pack): Allow demoting " Johannes Schindelin
2015-06-19 13:33         ` [PATCH v6 06/19] fsck: Report the ID of the error/warning Johannes Schindelin
2015-06-19 19:28           ` Junio C Hamano
2015-06-19 21:34             ` Johannes Schindelin
2015-06-19 23:26               ` Junio C Hamano
2015-06-19 13:33         ` [PATCH v6 07/19] fsck: Make fsck_ident() warn-friendly Johannes Schindelin
2015-06-19 19:48           ` Junio C Hamano
2015-06-19 13:33         ` [PATCH v6 08/19] fsck: Make fsck_commit() warn-friendly Johannes Schindelin
2015-06-19 20:12           ` Junio C Hamano
2015-06-19 20:52             ` Johannes Schindelin
2015-06-19 21:01               ` Junio C Hamano
2015-06-19 23:43                 ` Junio C Hamano
2015-06-19 13:34         ` [PATCH v6 09/19] fsck: Handle multiple authors in commits specially Johannes Schindelin
2015-06-19 20:16           ` Junio C Hamano
2015-06-19 21:04             ` Johannes Schindelin
2015-06-19 13:34         ` [PATCH v6 10/19] fsck: Make fsck_tag() warn-friendly Johannes Schindelin
2015-06-19 20:18           ` Junio C Hamano
2015-06-19 21:06             ` Johannes Schindelin
2015-06-19 13:34         ` [PATCH v6 11/19] fsck: Add a simple test for receive.fsck.<msg-id> Johannes Schindelin
2015-06-19 13:34         ` [PATCH v6 12/19] fsck: Disallow demoting grave fsck errors to warnings Johannes Schindelin
2015-06-19 20:21           ` Junio C Hamano
2015-06-19 21:09             ` Johannes Schindelin
2015-06-19 23:30               ` Junio C Hamano
2015-06-19 13:34         ` [PATCH v6 13/19] fsck: Optionally ignore specific fsck issues completely Johannes Schindelin
2015-06-19 13:34         ` [PATCH v6 14/19] fsck: Allow upgrading fsck warnings to errors Johannes Schindelin
2015-06-19 20:22           ` Junio C Hamano
2015-06-19 21:10             ` Johannes Schindelin
2015-06-19 13:35         ` [PATCH v6 15/19] fsck: Document the new receive.fsck.<msg-id> options Johannes Schindelin
2015-06-19 13:35         ` [PATCH v6 16/19] fsck: Support demoting errors to warnings Johannes Schindelin
2015-06-19 13:35         ` [PATCH v6 17/19] fsck: Introduce `git fsck --quick` Johannes Schindelin
2015-06-19 20:32           ` Junio C Hamano
2015-06-19 20:42             ` Johannes Schindelin
2015-06-19 20:53               ` Junio C Hamano
2015-06-19 23:57                 ` Scott Schmit
2015-06-20  3:24                   ` Junio C Hamano
2015-06-21  4:55                 ` Michael Haggerty
2015-06-21  5:09                   ` Randall S. Becker
2015-06-21 14:40                     ` Johannes Schindelin
2015-06-21 12:01                   ` Johannes Schindelin
2015-06-21 17:15                   ` Junio C Hamano
2015-06-21 18:27                     ` Johannes Schindelin
2015-06-21 20:35                       ` Junio C Hamano
2015-06-21 20:46                         ` Junio C Hamano
2015-06-22 13:01                         ` Johannes Schindelin
2015-06-20  3:26               ` Junio C Hamano
2015-06-19 13:35         ` [PATCH v6 18/19] fsck: git receive-pack: support excluding objects from fsck'ing Johannes Schindelin
2015-06-19 20:39           ` Junio C Hamano
2015-06-20 12:45             ` Johannes Schindelin
2015-06-20 17:28               ` Junio C Hamano
2015-06-22  4:21           ` Junio C Hamano
2015-06-22  8:49             ` Johannes Schindelin
2015-06-19 13:35         ` [PATCH v6 19/19] fsck: support ignoring objects in `git fsck` via fsck.skiplist Johannes Schindelin
2015-06-19 20:40           ` Junio C Hamano
2015-06-22 15:24         ` [PATCH v7 00/19] Introduce an internal API to interact with the fsck machinery Johannes Schindelin
2015-06-22 15:25           ` [PATCH v7 01/19] fsck: Introduce fsck options Johannes Schindelin
2015-06-22 15:25           ` [PATCH v7 02/19] fsck: Introduce identifiers for fsck messages Johannes Schindelin
2015-06-22 15:25           ` [PATCH v7 03/19] fsck: Provide a function to parse fsck message IDs Johannes Schindelin
2015-06-22 15:25           ` [PATCH v7 04/19] fsck: Offer a function to demote fsck errors to warnings Johannes Schindelin
2015-06-22 17:37             ` Junio C Hamano
2015-06-22 21:00               ` Johannes Schindelin
2015-06-22 15:25           ` [PATCH v7 05/19] fsck (receive-pack): Allow demoting " Johannes Schindelin
2015-06-22 15:25           ` [PATCH v7 06/19] fsck: Report the ID of the error/warning Johannes Schindelin
2015-06-22 15:26           ` [PATCH v7 07/19] fsck: Make fsck_ident() warn-friendly Johannes Schindelin
2015-06-22 15:26           ` [PATCH v7 08/19] fsck: Make fsck_commit() warn-friendly Johannes Schindelin
2015-06-22 15:26           ` [PATCH v7 09/19] fsck: Handle multiple authors in commits specially Johannes Schindelin
2015-06-22 15:26           ` [PATCH v7 10/19] fsck: Make fsck_tag() warn-friendly Johannes Schindelin
2015-06-22 15:26           ` [PATCH v7 11/19] fsck: Add a simple test for receive.fsck.<msg-id> Johannes Schindelin
2015-06-22 15:26           ` [PATCH v7 12/19] fsck: Disallow demoting grave fsck errors to warnings Johannes Schindelin
2015-06-22 15:26           ` [PATCH v7 13/19] fsck: Optionally ignore specific fsck issues completely Johannes Schindelin
2015-06-22 18:04             ` Junio C Hamano
2015-06-22 21:11               ` Johannes Schindelin
2015-06-22 15:26           ` [PATCH v7 14/19] fsck: Allow upgrading fsck warnings to errors Johannes Schindelin
2015-06-22 15:27           ` [PATCH v7 15/19] fsck: Document the new receive.fsck.<msg-id> options Johannes Schindelin
2015-06-22 15:27           ` [PATCH v7 16/19] fsck: Support demoting errors to warnings Johannes Schindelin
2015-06-22 15:27           ` [PATCH v7 17/19] fsck: Introduce `git fsck --connectivity-only` Johannes Schindelin
2015-06-22 15:27           ` [PATCH v7 18/19] fsck: git receive-pack: support excluding objects from fsck'ing Johannes Schindelin
2015-06-22 15:27           ` [PATCH v7 19/19] fsck: support ignoring objects in `git fsck` via fsck.skiplist Johannes Schindelin
2015-06-22 18:02           ` [PATCH v7 00/19] Introduce an internal API to interact with the fsck machinery Junio C Hamano
2015-06-22 21:07             ` Johannes Schindelin

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=alpine.DEB.1.00.1412231051320.21312@s15462909.onlinehome-server.info \
    --to=johannes.schindelin@gmx.de \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=mhagger@alum.mit.edu \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.