views:

175

answers:

5

Hi,

What are the common things you remove when clearing up your source tree? For instance:

  1. Deleting bin/obj/debug/release directories
  2. Removing temporary/cache files, such as ReSharper cache files
  3. Removing source control files/directories, such as _svn and .svn

Also, what are the things you commonly do with your source tree? For instance:

  1. Zip it up for archiving
  2. Email it to interested parties

I'm asking becuase I've been working on a tool based on Jeff Attwood's CleanSourcesPlus.

The tool is called Tree Trim and can be downloaded at http://code.google.com/p/treetrim/

+3  A: 

To do 1 - 3, I just do an export from Subversion.

anon
A: 

Using TortoiseSVN's export command will remove all the _svn/.svn folders from your source tree. I don't know if that helps at all.

phsr
A: 

Well we have an Exclude policy in Tortoise SVN to stop that junk getting in there in the first place.

Bin bin Obj obj ~* *.bak *.tmp *.suo *.user PrecompiledWeb

Eoin Campbell
Try using AnkhSVN together with Tortoise... You won't need to hassle with ignoring files anymore, since Ankh does that for you.
Igor Brejc
A: 

I use MSBuild to automate the process of exporting sources from SVN repo, building & zipping everything altogether. So everything boils down to running PrepareDownloads Release twice - because of how MSBuild operates.

Anton Gogolev
A: 

The build process should be automated so that you can do all those with one command on the command line.

If I want to put together the current development version (assuming that there is no continuous integration system already doing that), I say mvn clean package which will automatically download all library dependencies on need, build the software, run all tests and assemble the relase artifacts in a tidy ZIP file. It might take a couple of hours to configure the automated build process using Maven (more if Maven is new to you, less if you can copy a config template from one of your other projects), but after that it's just one command on the command line.

When releasing a new version, I run mvn release:prepare to increment the version number and to tag the release in the source control, after which I export the new tag from source control and build it with mvn clean deploy which will assemble the artifacts and upload them to a web accessible repository.

Esko Luontola