[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: Obliterate - an elementary case is now working

From: Julian Foad <julian.foad_at_wandisco.com>
Date: Wed, 23 Dec 2009 10:49:46 +0000

On Tue, 2009-12-22 at 19:21 +0000, Julian Foad wrote:
> Hi, Obliterate fans.
>
> As of r893267, if you compile with "-DSVN_WITH_EXPERIMENTAL_OBLITERATE",
> you get an "svn obliterate" subcommand which is capable of obliterating
> the latest revision of a file. In my tests so far, it seems to work in
> very limited circumstances.
>
> You can run the "obliterate_tests.py" which creates a test repository
> and then tries to do five obliterates. The first obliterate on a node
> path "f-mod/F" works, and then it fails on the next one "f-add/F". If
> you go to the working copy and try examining the history, can you find
> any errors?
>
>
> May not work:
>
> ? Node is a directory
> - I think I implemented it, but not yet tested so probably not yet
> working.
>
>
> Does not work:
>
> x Node was added in that revision
> - A bug which I have not traced yet: "No record in 'node-origins'
> table for node id 'a'".
>
> x Node has any successors (incl. copies) in a later revision
> - This includes any obliteration in a non-head revision.
> - Their reps and even node-revs will still refer to the obliterated
> one so the repository will definitely be messed up.
> - This is one of the next steps to implement.
>
> x FSFS
> - I'm implementing only in BDB at the moment.
>
> x Remote RA methods
> - I'm implementing only for RA-local at the moment.

Another "Does Not Work":

  x Concurrency
    - If a commit is being made at the same time, and the newly
committed revision includes a reference to the node that was
obliterated, that reference will be invalid.

- Julian

> There is also a bug in conjunction with trying to update the test's WC
> from r10 (in which the test obliteration occurred) back to r9: it raises
> a tree conflict but does not change the base rev to 9, and I can find no
> way from the command line to resolve the conflict and update to r9 or
> update to the new (obliterated) version of r10. I wonder if (for testing
> purposes) we can avoid this bug by updating the WC to r9 before
> performing the obliterate.
>
> Testing and other feedback greatly welcomed. Does it work for a
> directory?
Received on 2009-12-23 11:50:24 CET

This is an archived mail posted to the Subversion Dev mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.