Re: [PATCH v2 0/5] Pretty formats for reflog data
- From
Jakub Narebski <jnareb@gmail.com>
- Date
- Oct 16, 2009, 09:00 UTC
- Message-ID
- <m37huvg1a8.fsf@localhost.localdomain>
- In-Reply-To
- <20091016052003.GA10629@coredump.intra.peff.net>
Jeff King <peff@peff.net> writes:
> On Fri, Oct 16, 2009 at 12:41:43AM +0200, Thomas Rast wrote:
Show 28 quoted lines
> > I think going for %(...) wouldn't be too bad since we already have > > that in for-each-ref, and it can be backwards compatible. So we would > > have different sets of short and long specifiers, e.g. > > > > %ae = %(authoremail) > > %aE = %(authoremail:mailmap) > > > > We can then pass arguments via some yet-to-be decided syntax, say, > > %(body:indent(10)). > > That seems reasonable to me, though if we can limit ourselves to one > argument per specifier (I suspect most specifiers would simply be > boolean, but a few may take numbers or strings), then something like > %(body:indent=10) might be a little more readable. > > It would also be nice to have some sort of conditional inclusion, which > could deal with your extra ": " in patch 3. Either something like: > > %(reflog:short)%(reflog:+: ) > > or even > > %(reflog:short:prefix=\: ) > > and note that allowing arbitrary arguments means we get to deal with > quoting. > > But that is all for another potential series.
Or we could go the whole nine miles, and implement some subset of advanced shell syntax,
%(parameter:-word) %(parameter:=word) %(parameter:?word) %(parameter:+word)
RPM spec syntax,
%(?parameter) # expand if exists %(!?parameter) # expand if does not exists %(?parameter:literal) %(!?parameter:literal)
or RPM queryformat
%10(parameter) %-30(parameter)
[ %(messagebody)\n] # messagebody is list of lines [%(=param) %(list)\n] # param is not a list; repeat it
%|parameter?{present}:{missing}|%(parameter:date) %(parameter:shescape)
-- Jakub Narebski Poland ShadeHawk on #git