Branko Čibej wrote: > Johan Corveleyn wrote: >> +1. Very nice feature. >> >> I've been wondering though (sorry, haven't read through the source, >> just thinking about how it works): does it support multiple >> --show-item options? As in: >> >> $ svn info --show-item=last-changed-rev --show-item=last-changed-author >>TARGET >> 12345 >> johndoe
Currently it sees only the last --show-item option on the command line and ignores any others. >> I don't know how this would work together with multple (or recursive) >> targets, but maybe something like this might be okay: >> >> $ svn info --show-item=last-changed-rev >> --show-item=last-changed-author --depth=immediates . >> 12345 johndoe . >> 54321 jrandom README >> ... >> >> ? > No, it doesn't support multiple --show-item options. There are a several > reasons for that: > > * The first is a design decision from day one that we won't complicate > the command-line client by supporting multiple instances of the same > option. There's no code for that currently, [...] Actually, several options already support multiple instances: --with-revprop, --search, ... Multiple items need not require multiple options anyway: --show-item=last-changed-rev,last-changed-author > * As you note, there are potential problems with the output format. > Since --show-item is mainly intended to be used by simple scripts > (the output is not translated, for example), allowing multiple > values for one invocation would insanely complicate result parsing > and we'd probably have to invent whitespace escaping for the values. > This is already a potential problem with multiple targets. The output escaping/parsing issues are basically the same as for 'svn list -v' and 'svn status -v'. Here's a flexible possibility, shown by examples: # similar to 'svn status -v' svn info --show-item='%8{revision} %8{last-changed-rev} %-12{last-changed-author}' 1662195 1662137 rhuijben . # similar to 'svn ls -v' svn info --show-item='%7{last-changed-rev} %-8.8{last-changed-author} %10{file-size} %12{last-changed-date}' 1662137 rhuijben 2015-02-24T23:06:53.819595Z But, while all that might be nice, the main aim of this feature was to have an easy way to answer questions such as: 'is this a trunk WC or a branch WC?' $ svn info --show-item=relative-url . ^/subversion/trunk 'what is the URL of this working copy's repository?' $ svn info --show-item=repos-root-url . https://svn.apache.org/repos/asf 'what is the youngest revision in the repository?' $ svn info --show-item=revision ^/ 1662196 - Julian