This series fixes two bugs noticed by Brooke: - parsing trailers from signed tags doesn't work, because the signature confuses the trailers code - multiple %(trailers) placeholders share some storage, so their options may conflict The fixes for those are in patches 3 and 5, respectively. The other patches up to there are related cleanups and preparation. When fixing the second one, I noticed an obvious memory leak, fixed in patch 6. And then that made me wonder if that made t6300 leak-free. It didn't, but patches 7-9 get it there. So 6-9 could be taken as a separate series, but they do textually depend on what came before. [1/9]: t6300: drop newline from wrapped test title [2/9]: ref-filter: avoid extra copies of payload/signature [3/9]: ref-filter: strip signature when parsing tag trailers [4/9]: ref-filter: drop useless cast in trailers_atom_parser() [5/9]: ref-filter: store ref_trailer_buf data per-atom [6/9]: ref-filter: fix leak of %(trailers) "argbuf" [7/9]: ref-filter: fix leak with %(describe) arguments [8/9]: ref-filter: fix leak when formatting %(push:remoteref) [9/9]: ref-filter: add ref_format_clear() function builtin/branch.c | 1 + builtin/for-each-ref.c | 1 + builtin/tag.c | 1 + builtin/verify-tag.c | 1 + ref-filter.c | 90 ++++++++++++++++++++++++++++++----------- ref-filter.h | 3 ++ remote.c | 8 ++-- remote.h | 2 +- t/t6300-for-each-ref.sh | 41 ++++++++++++++++++- 9 files changed, 118 insertions(+), 30 deletions(-) -Peff