fsck: test and document unknown fsck.<msg-id> values

When fsck.<msg-id> is set to an unknown value it'll cause "fsck" to
die, but the same is not true of the "fetch" and "receive"
variants. Document this and test for it.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Ævar Arnfjörð Bjarmason 2018-07-27 14:37:20 +00:00 коммит произвёл Junio C Hamano
Родитель 65a836fa6b
Коммит 8a6d0525b7
2 изменённых файлов: 18 добавлений и 0 удалений

Просмотреть файл

@ -1637,6 +1637,10 @@ In general, it is better to enumerate existing objects with problems
with `fsck.skipList`, instead of listing the kind of breakages these
problematic objects share to be ignored, as doing the latter will
allow new instances of the same breakages go unnoticed.
+
Setting an unknown `fsck.<msg-id>` value will cause fsck to die, but
doing the same for `receive.fsck.<msg-id>` and `fetch.fsck.<msg-id>`
will only cause git to warn.
fsck.skipList::
The path to a sorted list of object names (i.e. one SHA-1 per

Просмотреть файл

@ -198,6 +198,10 @@ test_expect_success 'fetch with fetch.fsck.skipList' '
git --git-dir=dst/.git fetch "file://$(pwd)" $refspec
'
test_expect_success 'fsck.<unknownmsg-id> dies' '
test_must_fail git -c fsck.whatEver=ignore fsck 2>err &&
test_i18ngrep "Unhandled message id: whatever" err
'
test_expect_success 'push with receive.fsck.missingEmail=warn' '
commit="$(git hash-object -t commit -w --stdin <bogus-commit)" &&
@ -211,10 +215,15 @@ test_expect_success 'push with receive.fsck.missingEmail=warn' '
git --git-dir=dst/.git config fsck.missingEmail warn &&
test_must_fail git push --porcelain dst bogus &&
# receive.fsck.<unknownmsg-id> warns
git --git-dir=dst/.git config \
receive.fsck.whatEver error &&
git --git-dir=dst/.git config \
receive.fsck.missingEmail warn &&
git push --porcelain dst bogus >act 2>&1 &&
grep "missingEmail" act &&
test_i18ngrep "Skipping unknown msg id.*whatever" act &&
git --git-dir=dst/.git branch -D bogus &&
git --git-dir=dst/.git config --add \
receive.fsck.missingEmail ignore &&
@ -235,10 +244,15 @@ test_expect_success 'fetch with fetch.fsck.missingEmail=warn' '
git --git-dir=dst/.git config fsck.missingEmail warn &&
test_must_fail git --git-dir=dst/.git fetch "file://$(pwd)" $refspec &&
# receive.fsck.<unknownmsg-id> warns
git --git-dir=dst/.git config \
fetch.fsck.whatEver error &&
git --git-dir=dst/.git config \
fetch.fsck.missingEmail warn &&
git --git-dir=dst/.git fetch "file://$(pwd)" $refspec >act 2>&1 &&
grep "missingEmail" act &&
test_i18ngrep "Skipping unknown msg id.*whatever" act &&
rm -rf dst &&
git init dst &&
git --git-dir=dst/.git config fetch.fsckobjects true &&