These tests fail here under Mac OS, they pass under Linux: commit ff3d9b660a4b6e9d3eeb664ce1febe717adff737 I haven't had a chance to dig further. expecting success: git for-each-ref --format="%(if)%(authorname)%(then)%(authorname): %(refname)%(end)" >actual && cat >expect <<-\EOF && A U Thor: refs/heads/master A U Thor: refs/heads/side A U Thor: refs/odd/spot A U Thor: refs/tags/foo1.10 A U Thor: refs/tags/foo1.3 A U Thor: refs/tags/foo1.6 A U Thor: refs/tags/four A U Thor: refs/tags/one A U Thor: refs/tags/three A U Thor: refs/tags/two EOF test_cmp expect actual --- expect 2016-05-07 16:08:32.000000000 +0000 +++ actual 2016-05-07 16:08:32.000000000 +0000 @@ -3,12 +3,10 @@ A U Thor: refs/odd/spot - A U Thor: refs/tags/foo1.10 A U Thor: refs/tags/foo1.3 A U Thor: refs/tags/foo1.6 A U Thor: refs/tags/four A U Thor: refs/tags/one - A U Thor: refs/tags/three A U Thor: refs/tags/two not ok 34 - check %(if)...%(then)...%(end) atoms # # git for-each-ref --format="%(if)%(authorname)%(then)%(authorname): %(refname)%(end)" >actual && # cat >expect <<-\EOF && # A U Thor: refs/heads/master # A U Thor: refs/heads/side # A U Thor: refs/odd/spot # # # # A U Thor: refs/tags/foo1.10 # A U Thor: refs/tags/foo1.3 # A U Thor: refs/tags/foo1.6 # A U Thor: refs/tags/four # A U Thor: refs/tags/one # # A U Thor: refs/tags/three # A U Thor: refs/tags/two # EOF # test_cmp expect actual # expecting success: git for-each-ref --format="%(if)%(authorname)%(then)%(authorname)%(else)No author%(end): %(refname)" >actual && cat >expect <<-\EOF && A U Thor: refs/heads/master A U Thor: refs/heads/side A U Thor: refs/odd/spot No author: refs/tags/annotated-tag No author: refs/tags/doubly-annotated-tag No author: refs/tags/doubly-signed-tag A U Thor: refs/tags/foo1.10 A U Thor: refs/tags/foo1.3 A U Thor: refs/tags/foo1.6 A U Thor: refs/tags/four A U Thor: refs/tags/one No author: refs/tags/signed-tag A U Thor: refs/tags/three A U Thor: refs/tags/two EOF test_cmp expect actual --- expect 2016-05-07 16:08:32.000000000 +0000 +++ actual 2016-05-07 16:08:32.000000000 +0000 @@ -3,12 +3,10 @@ A U Thor: refs/odd/spot No author: refs/tags/annotated-tag No author: refs/tags/doubly-annotated-tag -No author: refs/tags/doubly-signed-tag A U Thor: refs/tags/foo1.10 A U Thor: refs/tags/foo1.3 A U Thor: refs/tags/foo1.6 A U Thor: refs/tags/four A U Thor: refs/tags/one -No author: refs/tags/signed-tag A U Thor: refs/tags/three A U Thor: refs/tags/two not ok 35 - check %(if)...%(then)...%(else)...%(end) atoms # # git for-each-ref --format="%(if)%(authorname)%(then)%(authorname)%(else)No author%(end): %(refname)" >actual && # cat >expect <<-\EOF && # A U Thor: refs/heads/master # A U Thor: refs/heads/side # A U Thor: refs/odd/spot # No author: refs/tags/annotated-tag # No author: refs/tags/doubly-annotated-tag # No author: refs/tags/doubly-signed-tag # A U Thor: refs/tags/foo1.10 # A U Thor: refs/tags/foo1.3 # A U Thor: refs/tags/foo1.6 # A U Thor: refs/tags/four # A U Thor: refs/tags/one # No author: refs/tags/signed-tag # A U Thor: refs/tags/three # A U Thor: refs/tags/two # EOF # test_cmp expect actual # expecting success: git for-each-ref --format="%(refname:short): %(if)%(HEAD)%(then)Head ref%(else)Not Head ref%(end)" >actual && cat >expect <<-\EOF && master: Head ref side: Not Head ref odd/spot: Not Head ref annotated-tag: Not Head ref doubly-annotated-tag: Not Head ref doubly-signed-tag: Not Head ref foo1.10: Not Head ref foo1.3: Not Head ref foo1.6: Not Head ref four: Not Head ref one: Not Head ref signed-tag: Not Head ref three: Not Head ref two: Not Head ref EOF test_cmp expect actual --- expect 2016-05-07 16:08:32.000000000 +0000 +++ actual 2016-05-07 16:08:32.000000000 +0000 @@ -3,12 +3,10 @@ odd/spot: Not Head ref annotated-tag: Not Head ref doubly-annotated-tag: Not Head ref -doubly-signed-tag: Not Head ref foo1.10: Not Head ref foo1.3: Not Head ref foo1.6: Not Head ref four: Not Head ref one: Not Head ref -signed-tag: Not Head ref three: Not Head ref two: Not Head ref not ok 36 - ignore spaces in %(if) atom usage # # git for-each-ref --format="%(refname:short): %(if)%(HEAD)%(then)Head ref%(else)Not Head ref%(end)" >actual && # cat >expect <<-\EOF && # master: Head ref # side: Not Head ref # odd/spot: Not Head ref # annotated-tag: Not Head ref # doubly-annotated-tag: Not Head ref # doubly-signed-tag: Not Head ref # foo1.10: Not Head ref # foo1.3: Not Head ref # foo1.6: Not Head ref # four: Not Head ref # one: Not Head ref # signed-tag: Not Head ref # three: Not Head ref # two: Not Head ref # EOF # test_cmp expect actual # -- 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