Nathan Hartman wrote:
> Julian Foad wrote:
>> I did already make the experimental features hidden by default in "svn
>> help"; and revealed with "-v" option.
>>
>> We don't necessarily need more than that.
>>
>> If we do want to go further in hiding them, I suggest the next step is:
>>
>> * create a ~/subversion/config setting to opt-in to enabling
>> experimental features;
>>
>> * disable the experimental commands/options (shelving, viewspec,
>> wc-copy-mods) unless that flag is enabled.
>>
>> However, I can't think of any specific reason why that's really
>> important. Can anyone?
For 'shelving' there are substantially different pros and cons between
v3 (best capture of changes, but really slow to create a shelf) and
previous versions. Therefore it would be nice to give the user the
option to choose a different version.
To accommodate this, I have implemented on the branch
'decouple-shelving-cli' the ability to choose shelving v3 (default) or
v2 (by setting SVN_EXPERIMENTAL_COMMANDS=shelf2). I pulled the
shelving-v2 code in from 1.11.x and added it to libsvn_client, renaming
APIs so the v2 ones differ from the v3 ones.
I have no intention to implement dynamic loading of this part of the
libsvn_client API. (In principle, that would be a nice direction to go,
to make truly pluggable features.)
In a default test run, the shelving v3 tests pass and the shelving v2
tests are skipped. With SVN_EXPERIMENTAL_COMMANDS=shelf2, the v2 tests
are run (and they pass); (I haven't added corresponding skips to the v3
tests for this case).
I think this is good to merge to trunk. What do you all think?
- Julian
Received on 2020-02-28 23:30:14 CET