"ZheNing Hu via GitGitGadget" <gitgitgadget@xxxxxxxxx> writes: > Change from last version: > Prove that the bug may appear when using %(color) atom. And add > corresponding test for it. > ++test_expect_success '%(color:#aa22ac) must success' ' s/success/succeed/ But more importantly, I am not sure how this is supposed to demonstrate existing breakage around the %(push). Did you mean to use %(push) instead of %(refname) or something? > ++ cat >expect <<-\EOF && > ++ refs/heads/main > ++ refs/heads/side > ++ refs/odd/spot > ++ refs/tags/annotated-tag > ++ refs/tags/doubly-annotated-tag > ++ refs/tags/doubly-signed-tag > ++ refs/tags/four > ++ refs/tags/one > ++ refs/tags/signed-tag > ++ refs/tags/three > ++ refs/tags/two > ++ EOF > ++ git for-each-ref --format="%(color:#aa22ac)%(refname)" >actual && > ++ test_cmp expect actual > ++' > ++ > + test_expect_success 'left alignment is default' ' > + cat >expect <<-\EOF && > + refname is refs/heads/main |refs/heads/main > > > ref-filter.c | 2 +- > t/t6302-for-each-ref-filter.sh | 18 ++++++++++++++++++ > 2 files changed, 19 insertions(+), 1 deletion(-) > > diff --git a/ref-filter.c b/ref-filter.c > index a0adb4551d87..213d3773ada3 100644 > --- a/ref-filter.c > +++ b/ref-filter.c > @@ -1730,7 +1730,7 @@ static int populate_value(struct ref_array_item *ref, struct strbuf *err) > else > v->s = xstrdup(""); > continue; > - } else if (atom->u.remote_ref.push) { > + } else if (!strcmp(atom->name, "push") || starts_with(atom->name, "push:")) { > const char *branch_name; > v->s = xstrdup(""); > if (!skip_prefix(ref->refname, "refs/heads/", > diff --git a/t/t6302-for-each-ref-filter.sh b/t/t6302-for-each-ref-filter.sh > index 9866b1b57368..38a7d83830aa 100755 > --- a/t/t6302-for-each-ref-filter.sh > +++ b/t/t6302-for-each-ref-filter.sh > @@ -117,6 +117,24 @@ test_expect_success '%(color) must fail' ' > test_must_fail git for-each-ref --format="%(color)%(refname)" > ' > > +test_expect_success '%(color:#aa22ac) must success' ' > + cat >expect <<-\EOF && > + refs/heads/main > + refs/heads/side > + refs/odd/spot > + refs/tags/annotated-tag > + refs/tags/doubly-annotated-tag > + refs/tags/doubly-signed-tag > + refs/tags/four > + refs/tags/one > + refs/tags/signed-tag > + refs/tags/three > + refs/tags/two > + EOF > + git for-each-ref --format="%(color:#aa22ac)%(refname)" >actual && > + test_cmp expect actual > +' > + > test_expect_success 'left alignment is default' ' > cat >expect <<-\EOF && > refname is refs/heads/main |refs/heads/main > > base-commit: 311531c9de557d25ac087c1637818bd2aad6eb3a