Evgeny Kotkov wrote: > first-cut implementation that persists the pristines-on-demand setting
This is great! Thank you Evgeny. > The patch currently allows doing an `svn checkout --store-pristines=no`, > which is going to create a working copy that doesn't store the pristine > copies of the files and fetches them on demand. The setting is persisted > in wc.db. > > > The patch doesn't include the following: > > 1) An update for the tests and the test suite to run the tests in both modes. Ack. An option to choose the mode is needed. > 2) An update for `svn info` to display the value of the new setting. Ack. That sounds simple enough. > 3) An ability to take the --store-pristines value from a user config, perhaps > on a per-URL basis. Ack. That can be simply a yes/no global default for starters. That is a lower priority (low risk, and not blocking the rest of this). > While working on the patch, I have stumbled across a couple of issues: > > A) `svn upgrade` without arguments fails for a working copy with > latest format It would be nice to change it to a no-op with a friendly message. (We have already discussed reasons why we are keeping the old format as the default.) > B) Shelving and pristines-on-demand Indeed shelving is not updated to work with pristines-on-demand. As an experimental feature probably returning a simple "feature not supported" error when pristines-on-demand is enabled would be sufficient. > C) Bumping the related API > > This part originates from B). For example, v3 shelving uses the libsvn_wc > APIs, such as svn_wc_revert6(). [...] those calls are going to fail [...] > [...] > Perhaps, we could bump the APIs that currently rely on the text-bases to > always be available. And we could then make their deprecated versions > fail (predictably) for working copies that don't store pristine contents. Any ideas what should the new (bumped) versions do? Just what they do now, fail if and when pristines are missing? Fetch pristines first? Take a parameter (or option config struct) telling whether to attempt hydrating? Something else? - Julian