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