On Tuesday, June 12, 2012, C. Michael Pilato wrote: > On 06/10/2012 09:13 AM, Justin Erenkrantz wrote: > > One question: what happens when the WC's pristine gets corrupted. That > is, > > we originally get the pristine properly, stash it in the local DB, but > > something happens later and that file changes content due to corruption. > > > > Specifically: > > > > Do we detect this? (When installing the pristine, do we ensure it has the > > proper checksum?) > > I look into this a few minutes ago. The changes made to ra_serf employ the > same mechanism for *delivering* the cached content to the working copy as > before. There's no "direct" WC->WC route taken here. ra_serf will read > contents from the WC pristine cache instead of from the network, pushing > those contents back into the WC via the regular update_editor just as in > the > network-source case. When editor->close_file() is called, checksum > verification is performed (just as in the past).
Cool. Thanks for looking into this! > > How does the user recover? Less of an issue when we have WC-specific > > pristines, but itis more of an issue as we move towards global pristines. > > Recovery is a whole 'nuther topic. In the past, some recovery has been > possible with 'svn update -r0 /path/to/messedup/file && svn cleanup && svn > up'. Not sure that that is a guaranteed recovery recipe, though, and > certainly not one that either the binary itself or any official user-facing > documentation prescribes. There were a few conversations last night that we should probably consider creating a UI/command to do something about fixing up local corruption. There are definite real-world reports of local WC corruption and folks having such large WCs that a clean checkout would be quite painful. Perhaps we should have a breakout session during the Hackathon this week to brainstorm some ideas? -- justin