fsck: offer a function to demote fsck errors to warnings
authorJohannes Schindelin <johannes.schindelin@gmx.de>
Mon, 22 Jun 2015 15:25:25 +0000 (17:25 +0200)
committerJunio C Hamano <gitster@pobox.com>
Tue, 23 Jun 2015 21:26:46 +0000 (14:26 -0700)
commit0282f4dced029230024196e460b9d9f971f494dd
tree0634d3385343ed12356328275ad40984058ff080
parentf417eed8cde2e7def06091977f888c296cbeae00
fsck: offer a function to demote fsck errors to warnings

There are legacy repositories out there whose older commits and tags
have issues that prevent pushing them when 'receive.fsckObjects' is set.
One real-life example is a commit object that has been hand-crafted to
list two authors.

Often, it is not possible to fix those issues without disrupting the
work with said repositories, yet it is still desirable to perform checks
by setting `receive.fsckObjects = true`. This commit is the first step
to allow demoting specific fsck issues to mere warnings.

The `fsck_set_msg_types()` function added by this commit parses a list
of settings in the form:

missingemail=warn,badname=warn,...

Unfortunately, the FSCK_WARN/FSCK_ERROR flag is only really heeded by
git fsck so far, but other call paths (e.g. git index-pack --strict)
error out *always* no matter what type was specified. Therefore, we need
to take extra care to set all message types to FSCK_ERROR by default in
those cases.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
fsck.c
fsck.h