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

Re: [PATCH 1/3] for-each-ref: introduce %C(...) for color

From
Junio C Hamano <gitster@pobox.com>
Date
Nov 8, 2013, 17:30 UTC
Message-ID
<xmqqppqaol6w.fsf@gitster.dls.corp.google.com>
In-Reply-To
<CALkWK0=w1G2O_W1LnfstqzaMjOQ0GWqJXeeRN4ymfsvohQBfyA@mail.gmail.com>
Ramkumar Ramachandra <artagnon@gmail.com> writes:
Show 5 quoted lines
> ... %C(...) is
> different in that it doesn't actually output anything, but changes the
> color of tokens following it. While I'm not opposed to %(color:...), I
> would prefer a color syntax that is different from other-token syntax,
> like in pretty-formats.

You may prefer it, but I do not see why users prefer to memorize that a magic that consumes no display output columns uses a syntax different from all the other magic introducers that follows %(name of the magic with string after colon to give more specifics to the magic) syntax.

In all honesty, the %XY mnemonic syntax in pretty-format is a syntactic disaster. It is perfectly OK to have a set of often used shorthand, but because we started without a consistent long-hand, we ended up with %Cred and %C(yellow), leading us to a nonsense like this (try it yourself and weep):

    $ git show -s --format='%CredAnd%CyellowAreNotTheSameColor'

It would have been much saner if we started from %(color:yellow), %(subject), etc., i.e. have a single long-hand magic introducer %(...), and added a set of often-used short-hands like %s.

I am not opposed to unify the internal implementations and the external interfaces of pretty, for-each-ref and friends, but modelling the external UI after the "mnemonic only with ad hoc additions" mess the pretty-format uses is a huge mistake.

Previous: Ramkumar RamachandraNext: Ramkumar Ramachandra
Message 11 of 15 in “Minor f-e-r enhacements”
  1. 0/3 Minor f-e-r enhacementsRamkumar Ramachandra, Oct 31, 2013
  2. 1/3 for-each-ref: introduce %C(...) for colorRamkumar Ramachandra, Oct 31, 2013
  3. Junio C HamanoOct 31, 2013
  4. Ramkumar RamachandraNov 1, 2013
  5. Junio C HamanoNov 1, 2013
  6. Ramkumar RamachandraNov 2, 2013
  7. Junio C HamanoNov 4, 2013
  8. Ramkumar RamachandraNov 7, 2013
  9. Junio C HamanoNov 7, 2013
  10. Ramkumar RamachandraNov 8, 2013
  11. Junio C HamanoNov 8, 2013
  12. Ramkumar RamachandraNov 12, 2013
  13. 2/3 for-each-ref: introduce %(HEAD) asterisk markerRamkumar Ramachandra, Oct 31, 2013
  14. 3/3 for-each-ref: introduce %(upstream:track[short])Ramkumar Ramachandra, Oct 31, 2013
  15. Junio C HamanoNov 1, 2013

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.