Julian Foad <julianf...@apache.org> writes:

> Hello everyone. Thanks to sponsorship arranged by Karl, I'm able to work
> on completing this.

Hi Julian,

It's great to have you on board!

> Important Question:
>
>   * Is the approach with a WC format bump the best approach?
>
> I see two options to consider:
>
>   * with format bump like this, plus completing the multi-WC-format
> branch work
>   * re-work the implementation of the concept, to not change the
> declared format number or DB schema, but instead to query "is the file
> present on disk" instead of the DB 'hydrated' flag
>
> For each of those options,
>
>   * what is the outcome in terms of interoperability?
>   * how much work is involved? (or is the 2nd one impossible?)

Between these two options, I don't think that it would be actually possible to
have the pristines-on-demand functionality available without a format bump,
as the existing clients working with the current format rely on the pristine
contents always being available on disk.

Personally, I tend to think that making a format bump and accompanying it with
the multi-wc-format support should work pretty well from a user's standpoint.

> Right now I'm reviewing this work and the long discussion about it and
> I will come back with a summary and plan for your consideration, and no
> doubt many questions, in the next few days.

Perhaps, one way to start off would be to fix the temporary assumption that
any working copy of the newer format always fetches the pristines on-demand.

While the final way of configuring that undoubtedly is an important question to
answer, there might be a way to make progress while keeping the configuration
simple, at least for now:

— Make the "are pristines being fetched on-demand" a property of the
  working copy
— Introduce a new configuration option that controls this new behavior
  and is applied at the moment when a working copy is created

I think that carrying these steps would bring the feature closer to its final
shape, and would also mean that a lot of the important subsurface work (such
as preserving the old behavior for existing working copies, running the tests
for both configurations, etc.) is already in place, so that we wouldn't have
to think about it further on.


Thanks,
Evgeny Kotkov

Reply via email to