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

Reply via email to