Search code examples
.netsvntortoisesvn

Continuous integration with Tortoise SVN


Is it possible to have CI i.e. Continuous Integration with Tortoise SVN? I want to automate the build process for .NET project.

Thanks, Omky


Solution

  • I highly recommend you look at either Hudson or Jenkins which are both open source continuous build tools that I've successfully used for .NET environments.

    Tortoise is merely a client program you're using for Subversion and really has nothing to do with continuous builds. However, Jenkins and Hudson both have internal SVN clients, so it's easy for them to see when changes were made to the repository and run a build.

    Hudson/Jenkins have various plugins that you'll find helpful. For example, there's a MSBuild.exe plugin that runs Visual Studio solution files and builds your .NET application. You can run Nant for builds, NUnit tests (and both will produce nice charts), and even deploy from them.

    Hudson/Jenkins are easy to setup and use. You can define jobs via a web based interface, and you can probably be up and running within a few hours after downloading them. Installing extra features via plugins is also very simple. You simply select the plugins, and press a button. I used to use CruiseControl and CruiseControl.NET but switched to Hudson/Jenkins because they simply work a lot better.

    Their history is a bit muddled at this point. The original Hudson project was run by Kohsuke Kawaguchi who worked for Sun Systems. When Sun got bought by Oracle, Kawaguchi went to Cloudbees and took the project with him. However, Oracle held the copyright to Hudson, so he renamed the project to Jenkins. Both Hudson and Jenkins projects claim to be the true project and the other is the fork. However, I use Jenkins because I see that's where most of the activity is for now.

    Update: Since 2017 at least, Oracle's Hudson is no longer maintained and has been announced as obsolete.