Search code examples
svnversion-controlwindows-vistatortoisesvn

Remove a specific file from a Subversion repository?


I have a SVN repository that has stuff from Bin directory (.exe, .dll, .pdb). I would like to clean up the repository to erase those file and to prevent them to come back.

  1. How can I clean the repository (without going file by file, directory by directory)?
  2. How can I prevent to add these file? (In SVNTortoise I have added a Global ignore pattern to *.exe *.suo *.pdb /Debug/* but it doesn't seem to work fine.

Solution

  • You will need to delete and ignore those files. There isn't a direct way to do it, as the ignore property does not apply recursively down the directory paths.

    • make sure you have tortoisesvn installed
    • checkout the repository path you need to modify to a local folder
    • use a find tool to find files, like *.dll, inside the local svn copy
    • I recommend find in total commander, press alt-f7, specify a search criteria, search
    • once the search is done, press "feed to listbox"

    total commander search

    • select all files with ctrl-a
    • right click (by default in total commander you need to do a long right click for the context menu)
    • select the option tortoisesvn -> delete and ignore list -> delete and ignore xx items by extension

    tortoisesvn mass ignore http://img60.imageshack.us/img60/5207/20090716104211.png

    • the same can be done with directories

    Now you've achieved:

    • in each selected path, the file extensions you've ignored, will be ignored
    • in the future, don't commit those files, ignore them