check_count A 2
 '
 
+test_expect_success 'blame by tag objects' '
+       git tag -m "test tag" testTag &&
+       git tag -m "test tag #2" testTag2 testTag &&
+       check_count -h testTag A 2 &&
+       check_count -h testTag2 A 2
+'
+
 test_expect_success 'setup B lines' '
        echo "2A quick brown fox jumps over the" >>file &&
        echo "lazy dog" >>file &&
        check_count A 2 B 1 B1 2 B2 1
 '
 
+test_expect_success 'blame --first-parent blames merge for branch1' '
+       check_count --first-parent A 2 B 1 "A U Thor" 2 B2 1
+'
+
 test_expect_success 'blame ancestor' '
        check_count -h master A 2 B 2
 '
        mv hello.c hello.orig &&
        echo "#include <stdio.h>" >hello.c &&
        cat hello.orig >>hello.c &&
-       tr Q "\\t" >>hello.c <<-\EOF
+       tr Q "\\t" >>hello.c <<-\EOF &&
        void mail()
        {
        Qputs("mail");