branch: only perform HEAD check for local branches

When assembling the ref-filter format to show "git branch" output, we put the "%(if)%(HEAD)" conditional at the start of the overall format. But there's no point in checking whether a remote branch matches HEAD, as it never will. The check should go inside the local conditional; we assemble that format inside the "local" strbuf. By itself, this is just a minor optimization. But in a future patch, we'll need this refactoring to fix local-branch coloring. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Jeff King committed Jul 9, 2017 at 05:58 UTC a5b3663898d6e45a5d109ce89c516adc2fd4ded2
1 file changed +2 -1
builtin/branch.c
+2 -1
@@ -331,8 +331,9 @@ static char *build_format(struct ref_filter *filter, int maxwidth, const char *r
331 struct strbuf local = STRBUF_INIT;
332 struct strbuf remote = STRBUF_INIT;
333
334 - strbuf_addf(&fmt, "%%(if)%%(HEAD)%%(then)* %s%%(else) %%(end)",
334 + strbuf_addf(&local, "%%(if)%%(HEAD)%%(then)* %s%%(else) %%(end)",
335 branch_get_color(BRANCH_COLOR_CURRENT));
336 + strbuf_addf(&remote, " ");
337
338 if (filter->verbose) {
339 struct strbuf obname = STRBUF_INIT;