Stefan Sperling wrote:
On Fri, Feb 28, 2020 at 10:30:12PM +0000, Julian Foad wrote:
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?

I agree with this plan and would be in favour of a merge to trunk, especially
because we have seen requests from users asking for shelving v2 to be restored.

Of course it would be nice to see v3 being finished but that would obviously
involve more time and effort than you're able to spare right now. Thank you
for volunteering the time to find and implement an interim solution!
I hope we will eventually see this feature developed to its full potential.

I should be able to merge that now. (I have half an hour free now.) I'm on our #svn-dev IRC/Matrix channel if you have any input or comments about it.

I wrote up a short review of the shelving implementations the other day:

  https://blog.foad.me.uk/2020/03/02/svn-shelving-development-review/

- Julian

Reply via email to