A única maneira de destruir dados na subversão é despejar o repositório em um arquivo; execute-o em svndumpfilter
e carregue-o novamente. O svndumpfilter só funciona em caminhos, não em revisões, portanto, para o seu propósito, eu recomendo svn export
ing sua pasta de binários, antes de fazer o seguinte:
svnadmin dump <repo root> > file.dump
cat file.dump | svndumpfilter exclude <repo path containing binaries> > file-new.dump
svnadmincreate <new repo root>
svnadmin load <new repo root> < file-new.dump
Isso deixará uma cópia do seu repositório, incluindo histórico completo, mas sem o caminho ofensivo; e você verá revisões vazias no histórico em que os commits desses caminhos aconteceram. (Existem algumas opções para svndumpfilter
para removê-las, mas na maioria dos casos você provavelmente deseja preservar a numeração da revisão.)
Quanto a automatizar isso, você pode usar um gancho post-commit para criar scripts desse processo, mas consome muito tempo em grandes repositórios. Você seria melhor simplesmente não armazenar binários no SVN, se você não precisa do histórico para eles.