On Wed, Nov 16, 2016 at 2:13 AM, Junio C Hamano <gitster@xxxxxxxxx> wrote: > Karthik Nayak <karthik.188@xxxxxxxxx> writes: > >> This is part of unification of the commands 'git tag -l, git branch -l >> and git for-each-ref'. This ports over branch.c to use ref-filter's >> printing options. >> >> Karthik Nayak (17): >> ref-filter: implement %(if), %(then), and %(else) atoms >> ref-filter: include reference to 'used_atom' within 'atom_value' >> ref-filter: implement %(if:equals=<string>) and >> %(if:notequals=<string>) >> ref-filter: modify "%(objectname:short)" to take length >> ref-filter: move get_head_description() from branch.c >> ref-filter: introduce format_ref_array_item() >> ref-filter: make %(upstream:track) prints "[gone]" for invalid >> upstreams >> ref-filter: add support for %(upstream:track,nobracket) >> ref-filter: make "%(symref)" atom work with the ':short' modifier >> ref-filter: introduce refname_atom_parser_internal() >> ref-filter: introduce symref_atom_parser() and refname_atom_parser() >> ref-filter: make remote_ref_atom_parser() use >> refname_atom_parser_internal() >> ref-filter: add `:dir` and `:base` options for ref printing atoms >> ref-filter: allow porcelain to translate messages in the output >> branch, tag: use porcelain output >> branch: use ref-filter printing APIs >> branch: implement '--format' option > > This is not a new issue, but --format='%(HEAD)' you stole from > for-each-ref is broken when you are on an unborn branch, and the > second patch from the tip makes "git branch" (no other args) on > an unborn branch to segfault, when there are real branches that > have commits. > > Something like this needs to go before that step. > > ref-filter.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/ref-filter.c b/ref-filter.c > index 944671af5a..c71d7360d2 100644 > --- a/ref-filter.c > +++ b/ref-filter.c > @@ -1318,7 +1318,7 @@ static void populate_value(struct ref_array_item *ref) > > head = resolve_ref_unsafe("HEAD", RESOLVE_REF_READING, > sha1, NULL); > - if (!strcmp(ref->refname, head)) > + if (head && !strcmp(ref->refname, head)) > v->s = "*"; > else > v->s = " "; > > Thanks, will add it in. -- Regards, Karthik Nayak