Skip to content

Commit

Permalink
t1450: the order the objects are checked is undefined
Browse files Browse the repository at this point in the history
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@pobox.com>
  • Loading branch information
Junio C Hamano committed Oct 2, 2012
1 parent c6a13b2 commit 9dad83b
Showing 1 changed file with 1 addition and 3 deletions.
4 changes: 1 addition & 3 deletions t/t1450-fsck.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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' '
Expand Down

0 comments on commit 9dad83b

Please sign in to comment.