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.