I was just thinking of writing a shell script to implement the obliterate functionality in an easy to do way (externally, using the suggested way, but automated).
Here's what I had in mind:
On the client
svn list -R > file-list
.- filter file-list in several ways like grep to create a file "files-to-delete", something like a set of
grep XXX file-list>>files-to-delete
. - transfer
files-to-delete
to the server using scp.
On the server
- Dump the repository
svnadmin dump /path/to/repos > repos-dumpfile
, this can be kept as a backup too. - Filter the dump file, for each word in "files-to-delete", do:
cat repos-dumpfile | svndumpfilter exclude $file > new-dumpfile
- Create a new repository and load the new file to it
svnadmin create new-name; svnadmin load new-name < new-dumpfile
Would this work? How can it fail? Any other ideas?
Yes, that script would work. But usually you don't obliterate that many files. Usually obliterate is only needed if you commit confidential information accidentally.
Are you sure you want to use obliterate for so many files?