Problems with svndumpfilter not excluding paths

svnsvnadminsvndumpfiltersvnsync

I am getting strange results from svndumpfilter – I need to obliterate 24 instances of 2 specific files in our repo, scattered amongst many branches. I am running the command as documented like so:

e.g.

type dumpfile | svndumpfilter exclude foo1/bar.dat foo2/bar.dat  > filtered_dumpfile

However, it seems the filtered dump file is not removing all of the nodes as expected but only removing 2. I have confirmed this by using svndumptool diff on the two dump files and after rebuilding the repo the excluded files are still present.

I'm sure I haven't missed any instances of those files as I have used svnlook tree to locate all paths in the repo. Also I have confirmed that leading slashes are consistent in the command and in the dump file.

Anyone have any ideas?

Best Answer

Apache Subversion FAQ entry which is related to the question has been recently updated with a new approach that allows you to filter repository history. Complex repository history filtration may be a bit more convenient with it than with the svndumpfilter approach.

You can replicate the repository with svnsync tool after configuring path-based authorization rules that deny read access to any paths that need to be filtered out from repository history.

Unlike svndumpfilter, svnsync will automatically translate copy operations with an unreadable source path into normal additions, which is useful if history involving copy operations needs to be filtered.