Branko Čibej wrote:
> On 16.03.2018 18:33, Julian Foad wrote:
>> I implemented an output format compatible with 'svn-viewspec.py' in
>> r1826990. Then I updated that output format to also support 'switched'
>> and revisions, in r1826993. This version outputs a header declaring
>> 'Format: 2', and svn-viewspec.py currently barfs on reading that.
>>
>> Suggested exercises for the reader (you, plural):
>>
>> * implement a UI to choose the output format (currently 'svn info
>> --viewspec' is hard-coded to produce that 'format 2')
>
> Why?
To experiment with the two existing implementations of "recreate WC from
a viewspec" -- which are direct command-line cmds and svn-viewspec.py.
> 'svn-viewspec.py' is not a supported tool; 'svn info --viewspec'
> does not exist in 1.10. We don't have any compatibility guarantees to
> worry about.
Yes.
>> * update 'svn-viewspec.py' to implement those 'format 2' extensions
>>
>> * start implementing the API functions that 'svn-viewspec.py' needs
>
> Again, why? 'svn-viewspec.py' uses the standard command-line tools. It
> follows that all API functions it needs already exist.
An efficient implementation is not yet possible. New APIs are needed.
The existing implementation checks out the root, then modifies each
subdirectory in depth-first order. If the root is depth-infinity, then
it first checks out everything, then proceeds to delete the unwanted
bits (and the same applies at any level where depth is reduced).
We need to design and implement the APIs that we will need to make an
efficient implementation.
Working with bindings to APIs seems like a good way to do that.
- Julian
Received on 2018-03-18 13:43:38 CET