At the moment, the git-fsck's integrity checks are targeted toward the
end user, i.e. the error messages are really just messages, intended for
human consumption.
Under certain circumstances, some of those errors should be allowed to
be turned into mere warnings, though, because the cost of fixing the
issues might well be larger than the cost of carrying those flawed
objects. For example, when an already-public repository contains a
commit object with two authors for years, it does not make sense to
force the maintainer to rewrite the history, affecting all contributors
negatively by forcing them to update.
This branch introduces an internal fsck API to be able to turn some of
the errors into warnings, and to make it easier to call the fsck
machinery from elsewhere in general.
I am proud to report that this work has been sponsored by GitHub.
Johannes Schindelin (18):
Introduce fsck options
Introduce identifiers for fsck messages
Provide a function to parse fsck message IDs
Offer a function to demote fsck errors to warnings
Allow demoting errors to warnings via receive.fsck.key = warn
fsck: report the ID of the error/warning
Make fsck_ident() warn-friendly
Make fsck_commit() warn-friendly
fsck: handle multiple authors in commits specially
Make fsck_tag() warn-friendly
Add a simple test for receive.fsck.*
Disallow demoting grave fsck errors to warnings
Optionally ignore specific fsck issues completely
fsck: allow upgrading fsck warnings to errors
Document the new receive.fsck.* options.
fsck: support demoting errors to warnings
Introduce `git fsck --quick`
git receive-pack: support excluding objects from fsck'ing
Documentation/config.txt| 27 +++
Documentation/git-fsck.txt | 7 +-
builtin/fsck.c | 66 --
builtin/index-pack.c| 13 +-
builtin/receive-pack.c | 36 ++-
builtin/unpack-objects.c| 16 +-
fsck.c | 512 +++-
fsck.h | 28 ++-
t/t1450-fsck.sh | 33 +++
t/t5302-pack-index.sh | 2 +-
t/t5504-fetch-receive-strict.sh | 46
11 files changed, 624 insertions(+), 162 deletions(-)
--
2.0.0.rc3.9669.g840d1f9
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html