[prev in list] [next in list] [prev in thread] [next in thread]
List: git
Subject: [PATCH v4 14/19] fsck: Allow upgrading fsck warnings to errors
From: Johannes Schindelin <johannes.schindelin () gmx ! de>
Date: 2015-01-31 21:06:18
Message-ID: 7bfd13f0407122a5ea7a61baf2c4dd3ba87c4444.1422737997.git.johannes.schindelin () gmx ! de
[Download RAW message or body]
The 'invalid tag name' and 'missing tagger entry' warnings can now be
upgraded to errors by specifying `invalid-tag-name` and
`missing-tagger-entry` in the receive.fsck.severity config setting.
Incidentally, the missing tagger warning is now really shown as a warning
(as opposed to being reported with the "error:" prefix, as it used to be
the case before this commit).
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
---
fsck.c | 24 +++++++++++++++++-------
t/t5302-pack-index.sh | 2 +-
2 files changed, 18 insertions(+), 8 deletions(-)
diff --git a/fsck.c b/fsck.c
index 03ec945..c4079ed 100644
--- a/fsck.c
+++ b/fsck.c
@@ -10,6 +10,7 @@
#include "utf8.h"
#define FSCK_FATAL -1
+#define FSCK_INFO -2
#define FOREACH_MSG_ID(FUNC) \
/* fatal errors */ \
@@ -55,10 +56,11 @@
FUNC(HAS_DOT, WARN) \
FUNC(HAS_DOTDOT, WARN) \
FUNC(HAS_DOTGIT, WARN) \
- FUNC(INVALID_TAG_NAME, WARN) \
- FUNC(MISSING_TAGGER_ENTRY, WARN) \
FUNC(NULL_SHA1, WARN) \
- FUNC(ZERO_PADDED_FILEMODE, WARN)
+ FUNC(ZERO_PADDED_FILEMODE, WARN) \
+ /* infos (reported as warnings, but ignored by default) */ \
+ FUNC(INVALID_TAG_NAME, INFO) \
+ FUNC(MISSING_TAGGER_ENTRY, INFO)
#define MSG_ID(id, severity) FSCK_MSG_##id,
enum fsck_msg_id {
@@ -206,6 +208,8 @@ static int report(struct fsck_options *options, struct object \
*object,
if (msg_severity == FSCK_FATAL)
msg_severity = FSCK_ERROR;
+ else if (msg_severity == FSCK_INFO)
+ msg_severity = FSCK_WARN;
append_msg_id(&sb, msg_id_info[id].id_string);
@@ -664,15 +668,21 @@ static int fsck_tag_buffer(struct tag *tag, const char *data,
goto done;
}
strbuf_addf(&sb, "refs/tags/%.*s", (int)(eol - buffer), buffer);
- if (check_refname_format(sb.buf, 0))
- report(options, &tag->object, FSCK_MSG_INVALID_TAG_NAME,
+ if (check_refname_format(sb.buf, 0)) {
+ ret = report(options, &tag->object, FSCK_MSG_INVALID_TAG_NAME,
"invalid 'tag' name: %.*s",
(int)(eol - buffer), buffer);
+ if (ret)
+ goto done;
+ }
buffer = eol + 1;
- if (!skip_prefix(buffer, "tagger ", &buffer))
+ if (!skip_prefix(buffer, "tagger ", &buffer)) {
/* early tags do not contain 'tagger' lines; warn only */
- report(options, &tag->object, FSCK_MSG_MISSING_TAGGER_ENTRY, "invalid format - \
expected 'tagger' line"); + ret = report(options, &tag->object, \
FSCK_MSG_MISSING_TAGGER_ENTRY, "invalid format - expected 'tagger' line"); + if \
(ret) + goto done;
+ }
else
ret = fsck_ident(&buffer, &tag->object, options);
diff --git a/t/t5302-pack-index.sh b/t/t5302-pack-index.sh
index 61bc8da..3dc5ec4 100755
--- a/t/t5302-pack-index.sh
+++ b/t/t5302-pack-index.sh
@@ -259,7 +259,7 @@ EOF
thirtyeight=${tag#??} &&
rm -f .git/objects/${tag%$thirtyeight}/$thirtyeight &&
git index-pack --strict tag-test-${pack1}.pack 2>err &&
- grep "^error:.* expected .tagger. line" err
+ grep "^warning:.* expected .tagger. line" err
'
test_done
--
2.2.0.33.gc18b867
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic