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

Re: [PATCH v2 1/3] pretty: add conditional %C?colorname placeholders

From
Jeff King <peff@peff.net>
Date
Apr 26, 2010, 03:26 UTC
Message-ID
<20100426032642.GA14421@coredump.intra.peff.net>
In-Reply-To
<20100426021347.GA29669@progeny.tock>
On Sun, Apr 25, 2010 at 09:13:47PM -0500, Jonathan Nieder wrote:
Show 6 quoted lines
> This is nice because in certain situations (e.g. different background
> colors), the default colors might not be suitable.  As an example of
> this, the ‘commit ’ line of ‘git log’ output uses color.diff.commit.
> 
> So it would be nice to be able to use %C(diff.commit) and
> automatically use the right color, if color is enabled.

FWIW, I like this idea very much. And it would be a bit more natural for %C(diff.commit) to respect diff.color, whereas we could perhaps keep %Cred as "always on" for backwards compatibility.

However:
> Why not make %C always check?  I can understand that it would be
> annoying when first trying to use %C.  On the other hand, it would be

I am a little nervous that we would be breaking scripts that pipe the colorized output for later display to the user. Right now doing something like[1]:

  log=`git log --format=%Cred%h`
  test "x$log" != x && echo "foo: $log"

colorizes, but we would be breaking it. And for new values like %C(diff.commit), we are not breaking anything (because it is a new syntax), but a script like the one above may want to convert, and there is no way to say "respect the color _config_, but don't respect isatty(1)". Saying "--color" doesn't work, because it overrides the color config. We can cheat a little with GIT_PAGER_IN_USE, but that will have funny interactions with pager.color.

[1] Yes, I know this snippet is contrived, but it seems within the realm of possibility. git-add--interactive reads the diff output in both regular and color forms, though it takes some care to look at the user's config and decide whether to show the color.

-Peff
Previous: Jonathan NiederNext: Jonathan Nieder
Message 25 of 27 in “pretty: format aliases”
  1. 0/3 pretty: format aliasesWill Palmer, Apr 25, 2010
  2. 1/3 pretty: add conditional %C?colorname placeholdersWill Palmer, Apr 25, 2010
  3. 2/3 pretty: make %H/%h dependent on --abbrev[-commit]Will Palmer, Apr 25, 2010
  4. 3/3 pretty: add aliases for pretty formatsWill Palmer, Apr 25, 2010
  5. Jonathan NiederApr 26, 2010
  6. Will PalmerApr 26, 2010
  7. Will PalmerApr 26, 2010
  8. Jonathan NiederApr 26, 2010
  9. Jeff KingApr 26, 2010
  10. Jonathan NiederApr 26, 2010
  11. Jonathan NiederApr 26, 2010
  12. Jeff KingApr 26, 2010
  13. Jeff KingApr 26, 2010
  14. Will PalmerApr 26, 2010
  15. Jonathan NiederApr 26, 2010
  16. 1/4 t4201 (shortlog): guard setup with test_expect_successJonathan Nieder, Apr 26, 2010
  17. 2/4 t4201 (shortlog): Test output format with multiple authorsJonathan Nieder, Apr 26, 2010
  18. 3/4 shortlog: Document and test --format optionJonathan Nieder, Apr 26, 2010
  19. 4/4 pretty: Respect --abbrev optionJonathan Nieder, Apr 26, 2010
  20. Will PalmerApr 26, 2010
  21. Jonathan NiederApr 26, 2010
  22. Will PalmerApr 26, 2010
  23. Jonathan NiederApr 26, 2010
  24. Jonathan NiederApr 26, 2010
  25. Jeff KingApr 26, 2010
  26. Jonathan NiederApr 26, 2010
  27. Jeff KingApr 26, 2010

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.