Message ID | pull.949.v6.git.1620821572126.gitgitgadget@gmail.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | [v6,GSOC] ref-filter: fix read invalid union member bug | expand |
"ZheNing Hu via GitGitGadget" <gitgitgadget@gmail.com> writes: > +test_expect_success '%(color:#aa22ac) must succeed' ' > + mkdir test && You do not need "mkdir test" here, as "git init test" would take care of it. On the other hand, you'd want to get 'test' directory removed after this passes, so test_when_finished rm -fr test && would be useful. Other than that, looks good to me. Thanks. > + git init test && > + ( > + cd test && > + test_commit initial && > + git branch -M main && > + cat >expect <<-\EOF && > + refs/heads/main > + refs/tags/initial > + EOF > + git remote add origin nowhere && > + git config branch.main.remote origin && > + git config branch.main.merge refs/heads/main && > + 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
Junio C Hamano <gitster@pobox.com> 于2021年5月13日周四 上午7:24写道: > > "ZheNing Hu via GitGitGadget" <gitgitgadget@gmail.com> writes: > > > +test_expect_success '%(color:#aa22ac) must succeed' ' > > + mkdir test && > > You do not need "mkdir test" here, as "git init test" would take > care of it. > Make sence. > On the other hand, you'd want to get 'test' directory removed after > this passes, so > > test_when_finished rm -fr test && > > would be useful. > Well, deleting or not deleting the directory "test" is not a big problem here. Delete it is ok. > Other than that, looks good to me. > > Thanks. > Thanks. -- ZheNing Hu
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..b64abe4184b8 100755 --- a/t/t6302-for-each-ref-filter.sh +++ b/t/t6302-for-each-ref-filter.sh @@ -117,6 +117,25 @@ test_expect_success '%(color) must fail' ' test_must_fail git for-each-ref --format="%(color)%(refname)" ' +test_expect_success '%(color:#aa22ac) must succeed' ' + mkdir test && + git init test && + ( + cd test && + test_commit initial && + git branch -M main && + cat >expect <<-\EOF && + refs/heads/main + refs/tags/initial + EOF + git remote add origin nowhere && + git config branch.main.remote origin && + git config branch.main.merge refs/heads/main && + 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