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