Re: [RFC] Implementing obliterate as a node-rev-id blacklist

Julian Foad <[email protected]> Thu, 10 Dec 2009 12:24:13 +0000
Newsgroups gmane.comp.version-control.subversion.devel,gmane.comp.version-control.subversion.rapidsvn.devel
Message-ID <1260447853.2077.3096.camel@edith>
Philip Martin wrote:
> I was wondering whether it would be possible to implement Julian's dd1
> model of obliterate, where obliterate causes file and directory nodes
> to be removed from the history, as a node-rev-id blacklist.  Rather
> than have obliterate modify history by rewriting previous revisions
> libsvn_repos would simply add the obliterated nodes to a blacklist,
> with storage provided by the fs layer, and then libsvn_repos would
> query the blacklist before sending out node information.  Think of it
> as a path based auth system built into libsvn_repos.

Hi Philip. Thanks for the thoughts. I discussed this idea here:
<http://subversion.tigris.org/ds/viewMessage.do?dsForumId=462&dsMessageId=2402573>, and this reply from Brane is probably the most interesting place to dig in: <http://subversion.tigris.org/ds/viewMessage.do?dsForumId=462&dsMessageId=2402654>.

- Julian


> One advantage of doing it this way would be that, apart from some
> relatively simple fs storage/query stuff, the clever bits all happen
> at the repos level and so only have to be implemented once to get both
> FSFS and BDB implementations.
> 
> One disadvantage is that the querying would add some overhead to all
> repos operations, although we could probably arrange for this to be
> minimal on repositories that are configured not to support
> obliteration.
> 
> One feature that could be viewed as either an advantage or a
> disadvantage is that obliteration could even be reversible.  Removing
> a blacklisted node-rev-id from the blacklist would "unobliterate" it.
>

------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=462&dsMessageId=2429170

Please start new threads on the <[email protected]> mailing list.
To subscribe to the new list, send an empty e-mail to <[email protected]>.