RFC: generic command line output templating
frank at kingswood-consulting.co.uk
Wed Sep 28 07:07:27 CDT 2011
On 27/09/11 20:47, Matt Mackall wrote:
> A frequent request is to add --template support to more commands. Here's
> my proposal on how to make our output engine do this generically.
> First, observe that the basic problem is to go from an internal
> representation to an external representation with a built-in default.
> Also observe that almost all of our output can be viewed as a list of
> elements made up of key/value pairs. For instance, log is a list of
> changesets with hash/author/date/summary values and status is a list of
> state/filename pairs.
Yes, yes, excellent idea.
Many or indeed most values are strings but have wildly differing
interpretations, so they would need either some additional metadata to be
passed or to be wrapped to help choosing the default representation without
having to code the key names each of them in the templater.
Don't forget a pickle output formatter.
Am I wrong or would this make cmdserver trivial?
P.S. As you know I maintain the perfarce extension for interfacing with p4.
The one feature I like about p4 is that it allows output to be produced in
something that is easy to parse. Curiously, they picked the marshal format as
one of the output formats, but it works well. But for hg parsing output is
much more ad-hoc and cumbersome.
More information about the Mercurial-devel