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

Re: Running svnadmin pack on a live repository

From: Hyrum K. Wright <hyrum_wright_at_mail.utexas.edu>
Date: Thu, 26 Feb 2009 15:58:08 -0600

On Feb 26, 2009, at 3:17 PM, Magnus Torfason wrote:

> I am wondering what happens if one runs svnadmin pack on a
> repository at the same time as a client is performing a
> checkout (for example). Is this supported, or is the
> onus on the administrator to prevent access to the repository
> while it is packed? I didn't see this mentioned in the release
> notes or in the book.

'svnadmin pack' can be run on live repositories. I didn't even know
the book mentioned packing, but we probably should do I better job of
describing those usage scenarios in the release notes.

> I realize that this may be more of a usage question, but the
> motivation is to try to specify the requirements for performing
> an absolute obliteration on a live repository. If packing
> requires repository access to be shut down, I don't think an
> absolute obliteration operation should aim for more, agreed?

Agreed. If an admin wanted to take the repo offline for an
obliterate, they'd just use svndumpfilter. One of the major selling
points of 'svnadmin obliterate' is that it should be able to be done
while the repository is live.

> If svnadmin pack handles live repositories gracefully I would
> be interested in determining whether the same method could be used
> for obliteration, since it requires a complete rewrite of the
> repository in the same way. If not, I would want the specification
> to reflect that, since I would like the specification to be
> reasonably implementable.

Obliteration is a little more indepth than packing. Packing just
squishes all the files together, so their internal offsets and such
are still valid, whereas obliterate removes actual data, potentially
invalidating these offsets (unless you just backfill the removed data
with zeros, but then you miss the space-saving benefits). With
packing enabled, we simply insert a shim into the code which
interprets those offsets so that it can work within pack files. No
mess, no fuss. Because you're actually rewriting history, obliterate
may be a bit more complex.

By the way, I'm interested in your work on 'svnadmin obliterate' and
when I get a chance will review some of the documentation you're
written. Of course, we want to make sure as much of it as possible
ends up in http://svn.collab.net/repos/svn/trunk/notes/obliterate/
That archive your thoughts for posterity and allow others to iterate
on your design work.


Received on 2009-02-26 22:58:29 CET

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