Mark Phippard wrote: >> "The core idea is that we start to maintain the following invariant: only >> the modified files have their pristine text-base files available on the >> disk." >> (https://svn.apache.org/repos/asf/subversion/branches/pristines-on-demand-on-mwf/BRANCH-README) > >That was where I read it! thanks
(The Readme is Evgeny's text AFAIK.) >So this text confuses me and makes me assume I am not reading it >correctly. Suppose I use this new feature to checkout a new WC without >any pristines. I make edits to a large binary file using some tool. At >this point, SVN does not even know I have done anything so I still >have no pristines. Correct. >If I run svn status it will show me the file is modified. Are you >saying that when I do this, SVN is going to pull down a pristine from >the server? Not for "status". Does the further description from the readme help?: """ - To get into the appropriate state at the beginning of the operation, we walk through the current text-base info in the db and check if the corresponding working files are modified. The missing text-bases are fetched using the svn_ra layer. The operations also include a final step during which the no longer required text-bases are removed from disk. - The operations that don't need to access the text-bases (such as "svn ls" or the updated "svn st") do not perform this walk and do not synchronize the text-base state. """ > [...] My assumption is that if I have one of these new types of WC's that I > will NEVER have any "pristines". Not correct, for this design. >Please enlighten me as to when pristines will be created and stored >and why I would want SVN to do that when I asked for no pristines? I >think I must be overlooking something obvious. In my own words now: In this design, pristines are kept locally for modified files (not never). During the new pristines-sync phase at the beginning of any operation that might[1] want the pristine (e.g. diff, but *not* status), if a file is detected to be locally modified and has no pristine locally, then the pristine is fetched ("hydrated") and then kept locally... until, during a sync pass at the end of any such operation, if any file is detected to be not-modified and its pristine is present locally: then it is cleaned up (dehydrated). Hope that's getting clearer. [1] "might want": false positives exist, as noted in this thread a few weeks ago. - Julian