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?