Is anyone actively working on implementing an API to completely remove a
file from a repository, as described in:
I'm looking at what would be involved in migrating FreeBSD from CVS to
Subversion, and we think we need this functionality.
As well as the traditional "Someone's committed a core file by accident"
use case that's covered in that issue, we have another use case that
doesn't seem to have been discussed (at least, a quick search didn't
turn it up).
This is where a committer inadvertently commits code that they are not
licensed to commit. This might be a binary blob from a third party
vendor that's not supposed to be distributed, or it might be, as has
happened to FreeBSD, been code being developed for a commercial third
party, that will eventually be open sourced, but that is not supposed to
be open sourced yet.
That's happened to FreeBSD. Some emergency CVS repo surgery meant that
the offending code was removed from the master repo, and all the mirrors
shortly caught up.
I don't (yet) have a solution that will work with Subversion. I'm aware
that it's possible to dump the repo from just before and just after the
commit, load the first dump, manufacture a dummy commit, and then load
the second dump.
However, I don't yet know how feasible that is. First, the dump/load
cycle for a large repository is lengthy -- doing this to a hypothetical
FreeBSD SVN repo, which will contain 10+ years of imported CVS history
is likely to be prohibitively so. Second, I haven't tested what the
effects of this procedure would be on any one who has mirrored the repo
(using svnsync) or has a working copy that contains the offending item.
Alternative approaches, such as restore from a backup prior to the
commit, and replay the remaining commits are also possible, but again,
I've yet to investigate what sort of effect this would have on mirrors
that are svnsync(1)'ing the repo.
Hence our interest in supported command/API that does this.
To unsubscribe, e-mail: email@example.com
For additional commands, e-mail: firstname.lastname@example.org
Received on Sun Sep 17 17:40:25 2006