On 09/03/12 13:56, Simon Dean wrote:
Hi

Are there any plans to add a command to SVN that cleans a working copy or path 
of all unversioned and/or ignored files and directories?

This is a very common need for automated Continuous Integration builds where a 
working copy is reused for multiple runs of the same build.  Currently there is 
no simple and fast way to restore a working copy to a prestine state.  Often 
users have to choose between i) completely deleting the working copy for every 
build and then doing a fresh checkout from scratch or ii) living with lots of 
unversioned and ignored files and directories building up with each successive 
build.

The only option at the moment is to write a shell/batch script to provide this 
feature which is messy and there's common way to do this.  A new SVN command or 
enhanced exiting command that provided this functionality would be incredibly 
useful.

As an example, here is the DOS batch script that I use at the moment:

        @echo off
        :: revert any uncommitted changes
        svn revert . --recursive

        :: remove all unversioned and all ignored files and directories
        for /f "usebackq tokens=1*" %%i in (`svn status --depth infinity --no-ignore ^| 
findstr /r "^[\?I]"`) do (
          if not %%j == %~nx0 (
            if exist "%%j\*" (
              echo deleting unversioned directory "%%j"
              attrib -h "%%j" /d /s
              rmdir /s /q "%%j"
            ) else (
              echo deleting unversioned file "%%j"
              attrib -h "%%j"
              del /f "%%j"
            )
          )
        )

A possible command line syntax might look something like this:

        svn revert . --ignored --unversioned --recursive


Sorry, but to me this has got nothing to do with Subversion. Your CI tool is should clean up itself.

Having said that, if someone wants to implement such feature I don't think I would have anything against it. But I doubt it will (be implemented)

Giulio

Reply via email to