On Thu, Apr 7, 2022 at 6:07 PM Julian Foad <julianf...@apache.org> wrote:
>
> Johan Corveleyn wrote:
> > Ah, yes, I think that makes #4889 a blocker.
>
> Well, I'm having a hard time deciding what exactly we need and why.
>
> I previously said "it's pretty clear it needs to be uncoupled" but
> actually just now I've dived into it for a couple of hours, coding and
> thinking, and it's not at all clear what this means.
>
> Is it mainly about UI level naming in "checkout" and "upgrade" -- in
> other words, that we would prefer the user to say
>
>   "svn checkout --enable-POD525"
>
> instead of (or in addition to) "--compatible-version=1.15"? And we would
> not need to support the combination of "=1.15" without "--enable-POD525"
> (in other words the feature is still coupled to the format in the
> implementation), but require it to be specified explicitly and error out
> if it isn't, in order to set a precedent that that's the option you'll
> also be needing to use in future versions?
>
> ('POD525' used here as a place-holder for the feature name that is to be 
> decided.)
>
> If it's that kind of UI-level naming issue, then we probably want to
> also put corresponding entry in "svn info" saying "POD525 enabled?
> yes/no". And anywhere else the idea is exposed in the UI, if anywhere.
>
> And/or, is it that we want to put internal APIs in place that let the
> higher level code layers ask "is POD525 enabled?" and not have to change
> those callers when 1.16/new-wc-format-33 comes around? But I don't see a
> strong need for that. We are not making a strong case for any of this to
> be exposed in public APIs at this time at all and the internal API calls
> can surely be updated as and when needed.
>
> And/or, is it that we really need users to be able to create a format-32
> (v=1.15) WC that doesn't have POD525 enabled? I am pretty sure that is
> not the case.

Sorry for the late reply, but mainly this, yes. Users will not expect
the latest wc format to "force" them into POD525-enabledness. I think
it would be a mistake to hard-couple format-32 to POD525-enabled. And
uncoupling it only when format-33 comes around with another shiny
feature would be highly confusing IMHO.

Upgrading to the latest format is a natural thing to do. People might
just expect it to fix security bugs, or to give them the latest and
greatest features. People won't expect a simple
TortoiseSVN-right-click->upgrade to completely re-arrange their
working copy into POD525-enabled state (which is an optional feature
that won't benefit every possible working copy). If this is coupled I
am willing to bet that TortoiseSVN will have to introduce a warning
popup for the "upgrade" action telling them about POD525, what it will
do to their pristine-store (trying to explain what it even is to most
users), how it might cripple their experience if they are on
high-latency network, etc etc ...

It's different for WC-features that are not optional and that are the
"way forward" for everyone (like WC-NG was ... there was no option).
But when the new format introduces a choice of WC-layout (both of
which are valid and supported into the future), the format upgrade
itself should not make that "new choice" automatically (possibly
causing huge pristine-store reshuffling right then and there), but
keep things the old way for backwards compatibility, IMHO.

So yes, I think format-32 and POD525 should be decoupled in the API
and in the UI, and stored somewhere in the WC storage (in wc.db, as
Evgeny already suggested elsewhere I think).

-- 
Johan

Reply via email to