On 26.03.2018 00:32, Johan Corveleyn wrote:
> Interesting stuff ...
>
> On Sat, Mar 24, 2018 at 8:38 PM, Daniel Shahaf <d...@daniel.shahaf.name> 
> wrote:
>> C. Michael Pilato wrote on Fri, Mar 23, 2018 at 08:46:16 -0400:
>>> On 03/23/2018 02:04 AM, Daniel Shahaf wrote:
>>>> Julian Foad wrote on Thu, 22 Mar 2018 22:24 +0000:
>>>>> This question keeps coming up and I feel we should provide an accurate
>>>>> answer, even if the procedure is not "supported".
>>>>>
>>>>> Any corrections to my current best effort, below?
>>>>>
>>>> As a first step:
>>>>
>>>> Check $REPOS/format, $REPOS/db/fs-type, $REPOS/db/format.
>>> [...]
>>>
>>> Sure sounds like you guys are well on your way to implementing 'svnadmin
>>> rollback', a specific subset of what a "perfect" obliterate feature
>>> would offer that also probably meets 75% of admin users' needs.  Just
>>> sayin'...
>> How would 'svnadmin rollback' handle the "restart all reader processes" step?
>>
>> I'm concerned that users (admins) won't downdate all wc's ...
> During the Aachen hackathon we brainstormed a bit about obliterate,
> and figured it would be wonderful if a client, acting on a working
> copy, could detect that "history has been changed". Even if only to
> give an fatal error message "your working copy is broken, please check
> out a new one".

The solution to that has been known a long time: you have to invent
another number besides the revision ID — call it "data generation ID" —
that gets changed every time anything externally visible happens to the
repository data that isn't also tracked by a change in the revision ID.
Such would include:

  * revprop changes
  * any kind of obliterate-ish operation

The client would have to tell the server the generation ID(s) when it
describes the working copy, and the server would then have to have a way
to force the client to perform the equivalent of a full checkout instead
of just an update.

-- Brane

Reply via email to