Junio C Hamano <gitster@xxxxxxxxx> writes: > The last piece to expect "error in tag.*broken links" in the output > is wrong. Probably we should remove the misguided check and end > it with "test_must_fail git fsck --tags". I think this should suffice. When we check tag T first, we make a mental note on X that is referred by T that X must be of a certain type, but we do not bother recording _why_ we decided X must be of the type (e.g. "because tag T asks it to be"). So when we check T and later check X, the only thing we know is that we expected X to be commit but it actually is blob. Exactly the same type of issue can arise for a blob that is pointed by a tree or a tree that is pointed by a commit. If a tree records a reference to a commit but with 100644 mode bits, we may either say tree is broken (when we have already seen the referent and know it is a commit), or the referent is broken (when we saw the tree first and expect the referent to be a blob). -- >8 -- Subject: [PATCH] t1450: the order the objects are checked is undefined When a tag T points at an object X that is of a type that is different from what the tag records as, fsck should report it as an error. However, depending on the order X and T are checked individually, the actual error message can be different. If X is checked first, fsck remembers X's type and then when it checks T, it notices that T records X as a wrong type (i.e. the complaint is about a broken tag T). If T is checked first, on the other hand, fsck remembers that we need to verify X is of the type tag records, and when it later checks X, it notices that X is of a wrong type (i.e. the complaint is about a broken object X). The important thing is that fsck notices such an error and diagnoses the issue on object X, but the test was expecting that we happen to check objects in the order to make us detect issues with tag T, not with object X. Remove this unwarranted assumption. Signed-off-by: Junio C Hamano <gitster@xxxxxxxxx> --- t/t1450-fsck.sh | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/t/t1450-fsck.sh b/t/t1450-fsck.sh index 5b79c51..9c64eef 100755 --- a/t/t1450-fsck.sh +++ b/t/t1450-fsck.sh @@ -177,9 +177,7 @@ test_expect_success 'tag pointing to something else than its type' ' test_when_finished "remove_object $tag" && echo $tag >.git/refs/tags/wrong && test_when_finished "git update-ref -d refs/tags/wrong" && - test_must_fail git fsck --tags 2>out && - cat out && - grep "error in tag.*broken links" out + test_must_fail git fsck --tags ' test_expect_success 'cleaned up' ' -- 1.8.0.rc0.54.g771a61b -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html