Removing un-versioned files with SVN and powershell
Today I wanted to do a 'treeclean', i.e. remove all un-versioned files from my working copy of a source controlled project. I've been using SlikSVN's command line tools for managing SVN stuff. However, there are some things a GUI client will do for you OOTB, and a treeclean is generally one of them.
Rather than installing a GUI tool just for this 'once in a blue moon' functionality -- I ran with what I had; powershell, slik & regex:
[sourcecode language="powershell"]
#shorthand
(svn st "--no-ignore") -match '^[I?]' -replace '^.s+','' | rm -fo]
#longhand
(svn status "--no-ignore") -match '^[I?]' -replace '^.s+','' | Remove-Item -Force
[/sourcecode]
Optionally, you could set the recurse option to rm if you were confident to do so.