git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH v2 2/7] doc: refactor description of color format

From
Jeff King <peff@peff.net>
Date
Jun 23, 2016, 17:32 UTC
Message-ID
<20160623173229.GB15774@sigill.intra.peff.net>
In-Reply-To
<20160623173048.GA19923@sigill.intra.peff.net>

This is a general cleanup of the description of colors in git-config, mostly to address inaccuracies and confusion that had grown over time:

  - you can have many attributes, not just one
  - the discussion flip-flopped between colors and
    attributes; now we discuss everything about colors, then
    everything about attributes
  - many concepts were lumped into the first paragraph,
    making it hard to read, and especially to find the
    actual lists of colors and attributes. I stopped short
    of breaking those out into their own lists, as it seemed
    like an excessive use of vertical screen real estate.
  - we introduced negated attributes, but then the next
    paragraph basically explains how each item starts off
    with no attributes. So why would one need negated
    attributes? We now explain.
  - minor typo, language, and typography fixes
Signed-off-by: Jeff King <peff@peff.net>
---
 Documentation/config.txt | 47 ++++++++++++++++++++++++++---------------------
 1 file changed, 26 insertions(+), 21 deletions(-)
diff --git a/Documentation/config.txt b/Documentation/config.txt
index 58673cf..f8460d4 100644
--- a/Documentation/config.txt
+++ b/Documentation/config.txt
@@ -150,27 +150,32 @@ integer::
        1024", "by 1024x1024", etc.
 
 color::
-       The value for a variables that takes a color is a list of
-       colors (at most two) and attributes (at most one), separated
-       by spaces.  The colors accepted are `normal`, `black`,
-       `red`, `green`, `yellow`, `blue`, `magenta`, `cyan` and
-       `white`; the attributes are `bold`, `dim`, `ul`, `blink` and
-       `reverse`.  The first color given is the foreground; the
-       second is the background.  The position of the attribute, if
-       any, doesn't matter. Attributes may be turned off specifically
-       by prefixing them with `no` (e.g., `noreverse`, `noul`, etc).
-+
-Colors (foreground and background) may also be given as numbers between
-0 and 255; these use ANSI 256-color mode (but note that not all
-terminals may support this).  If your terminal supports it, you may also
-specify 24-bit RGB values as hex, like `#ff0ab3`.
-+
-The attributes are meant to be reset at the beginning of each item
-in the colored output, so setting color.decorate.branch to `black`
-will paint that branch name in a plain `black`, even if the previous
-thing on the same output line (e.g. opening parenthesis before the
-list of branch names in `log --decorate` output) is set to be
-painted with `bold` or some other attribute.
+       The value for a variable that takes a color is a list of
+       colors (at most two, one for foreground and one for background)
+       and attributes (as many as you want), separated by spaces.
++
+The basic colors accepted are `normal`, `black`, `red`, `green`, `yellow`,
+`blue`, `magenta`, `cyan` and `white`.  The first color given is the
+foreground; the second is the background.
++
+Colors may also be given as numbers between 0 and 255; these use ANSI
+256-color mode (but note that not all terminals may support this).  If
+your terminal supports it, you may also specify 24-bit RGB values as
+hex, like `#ff0ab3`.
++
+The accepted attributes are `bold`, `dim`, `ul`, `blink`, and `reverse`.
+The position of any attributes with respect to the colors (before, after,
+or in between), doesn't matter. Specific attributes may be turned off
+by prefixing them with `no` (e.g., `noreverse`, `noul`, etc).
++
+For git's pre-defined color slots, the attributes are meant to be reset
+at the beginning of each item in the colored output. So setting
+`color.decorate.branch` to `black` will paint that branch name in a
+plain `black`, even if the previous thing on the same output line (e.g.
+opening parenthesis before the list of branch names in `log --decorate`
+output) is set to be painted with `bold` or some other attribute.
+However, custom log formats may do more complicated and layered
+coloring, and the negated forms may be useful there.
 
 pathname::
 	A variable that takes a pathname value can be given a
-- 
2.9.0.209.g845fbc1
Previous: Jeff KingNext: Jeff King
Message 10 of 24 in “Italics formatting”
  1. Simon CourtoisJun 23, 2016
  2. 0/2 more ANSI attributesJeff King, Jun 23, 2016
  3. 1/2 color: fix max-size commentJeff King, Jun 23, 2016
  4. 2/2 color: support "italic" attributeJeff King, Jun 23, 2016
  5. Simon CourtoisJun 23, 2016
  6. Junio C HamanoJun 23, 2016
  7. Jeff KingJun 23, 2016
  8. 0/7 more ANSI attributesJeff King, Jun 23, 2016
  9. 1/7 color: fix max-size commentJeff King, Jun 23, 2016
  10. 2/7 doc: refactor description of color formatJeff King, Jun 23, 2016
  11. 3/7 add skip_prefix_mem helperJeff King, Jun 23, 2016
  12. 4/7 color: refactor parse_attrJeff King, Jun 23, 2016
  13. 5/7 color: allow "no-" for negating attributesJeff King, Jun 23, 2016
  14. 6/7 color: support "italic" attributeJeff King, Jun 23, 2016
  15. Junio C HamanoJun 23, 2016
  16. Jeff KingJun 23, 2016
  17. 7/7 color: support strike-through attributeJeff King, Jun 23, 2016
  18. Junio C HamanoJun 23, 2016
  19. Jeff KingJun 23, 2016
  20. Junio C HamanoJun 23, 2016
  21. Junio C HamanoJun 23, 2016
  22. Jeff KingJun 23, 2016
  23. Junio C HamanoJun 23, 2016
  24. Junio C HamanoJun 23, 2016

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.