Jeff King <peff@xxxxxxxx> writes: > This version also takes into account feedback from the original thread. > And as I added tests, it surfaced a few corner cases around color config > that I've dealt with here. The last two patches are the most > interesting bits. > > [01/15]: check return value of verify_ref_format() > [02/15]: docs/for-each-ref: update pointer to color syntax > [03/15]: t: use test_decode_color rather than literal ANSI codes > [04/15]: ref-filter: simplify automatic color reset > [05/15]: ref-filter: abstract ref format into its own struct > [06/15]: ref-filter: move need_color_reset_at_eol into ref_format > [07/15]: ref-filter: provide a function for parsing sort options > [08/15]: ref-filter: make parse_ref_filter_atom a private function > [09/15]: ref-filter: factor out the parsing of sorting atoms > [10/15]: ref-filter: pass ref_format struct to atom parsers > [11/15]: color: check color.ui in git_default_config() > [12/15]: for-each-ref: load config earlier > [13/15]: rev-list: pass diffopt->use_colors through to pretty-print > [14/15]: pretty: respect color settings for %C placeholders > [15/15]: ref-filter: consult want_color() before emitting colors Overall I think the endgame is what we want to have in the future (rather, what I wish we had from the beginning). I'd have to think about 11, 14 and 15 a bit more before saying anything that would be remotely useful. Thanks. > > Documentation/git-for-each-ref.txt | 6 +- > Documentation/pretty-formats.txt | 18 ++++-- > builtin/branch.c | 21 +++--- > builtin/clean.c | 3 +- > builtin/for-each-ref.c | 27 ++++---- > builtin/grep.c | 2 +- > builtin/rev-list.c | 1 + > builtin/show-branch.c | 2 +- > builtin/tag.c | 61 ++++++------------ > builtin/verify-tag.c | 14 ++-- > color.c | 8 --- > config.c | 4 ++ > diff.c | 3 - > pretty.c | 27 ++++++-- > ref-filter.c | 108 ++++++++++++++++++------------- > ref-filter.h | 30 +++++++-- > t/t3203-branch-output.sh | 31 +++++++++ > t/t4207-log-decoration-colors.sh | 22 +++---- > t/t6006-rev-list-format.sh | 129 ++++++++++++++++++++++++------------- > t/t6300-for-each-ref.sh | 39 +++++++---- > t/t7004-tag.sh | 25 +++++++ > t/test-lib-functions.sh | 1 + > 22 files changed, 362 insertions(+), 220 deletions(-) > > -Peff