Question

I work in a team of 2 developers and currently we use VSS and have no continuous integration or daily build and few Unit tests.

I'm looking to change our source control to Subversion and at the same time get up and running with a more professional process.

Subversion/cruise control/nant/nunit appears quite a popular combination from what I've seen so far and I've just installed these onto a spare machine.

I've downloaded the subversion manual and that is 400 pages long for just one of the tools!

Really I just want to get up and running using tried and tested patterns proven already in the wild and then tweak as required and as my familiarity with the tools increases.

Is anyone aware of any book/tutorial/walkthrough that covers just the essentials to get me up and running ASAP with this particular combination of tools?

Was it helpful?

Solution

I've been using subversion for quite some years now and I have to say that the best introduction I've found is included in the help file for TortoiseSVN. TortoiseSVN is another free client for Windows with Explorer integration. I highly recommend reading the Tortoise help first, even before the original subversion docs. Where necessary it refers you to the official docs.

Tortoise also happens to be my favorite client. In fact, on most machines it is the only subversion component I need. It performs all of the functions I use routinely, including repository creation. While that is no knock to the regular command-line tools, and I do install those as well in most cases, I only find the cli tools necessary for automation from scripts and (infrequent) repository maintenance functions.

I'm in the process of rearchitecting our own build environment at work so I'm going through the options for a lot of build/development tools. Here are tools I can recommend or come with good recommendations from others:

WinMerge: highly recommended free diff tool, install after TortoiseSVN for the best integration. I use this tool on a daily basis for many purposes, some outside of development.

TeamCity: CI server that seems to be well-polished. I haven't tried this one yet but it's the leading contender over CC.NET given my experience with CC.NET (a year) and the good reviews it receives. Hudson is another well-reviewed option.

VisualSVN Server: a recommended free http(s) server for SVN that features AD integration for permissions and a microsoft-style msc console. I just finished implementing it at work and it's very simple. A must if you want remote (IP) check-in/check-out, ssl encryption, repository hook scripts and other server-based features.

VisualSVN: a well-reviewed Visual Studio plug-in for SVN. Haven't tried this one but it is regarded as a no-brainer purchase. [Edit: according to what I've read here on overflow, AnkhSVN is a free option that works about the same.]

SVN-Monitor: recommended free monitor software that alerts you to changes in the repository. Configurable as to what it monitors and the action it takes. Depends on TortoiseSVN being installed.

BugTracker.NET: recommended free issue-tracking server. Features SVN integration to tie issues being tracked to subversion revisions. Not sure if TeamCity has a similar feature but we already use this outside of development to track helpdesk issues and it is great for a free package.

I don't have experience with unit testing, coverage, documentation tools for .NET, so I can't comment there.

I am a Pythonista though, so I'll plug one thing Python can be useful for wrt SVN, which is that you can use the PySVN library to perform any kind of automated repository work that's too complex for scripting with the command-line tools. I use it for creating tags once a build is ready to be tagged and deployed.

Pick some of these tools and you'll be ahead of the game. Developing processes around them and training personnel, well, that's still a job for you. :)

OTHER TIPS

I've recorded a video illustrating all of the basics including setup of SubVersion, CruiseControl.NET. I even illustrate a broken build. The dev tool used was Delphi but could have easily been VS.NET.

If you want to get a Subversion server up and running ASAP without having to know a whole lot about the repo, check out Visual SVN here. It's a GUI app that lets you set up repos without needing to read through a lot of documentation. There's also a dimecast about it here.

As far as integrating with CC.NET, look up CC.NET documentation on subversion control block here, they have it broken out in their site fairly well and you should be able to find the xml tags for svn fairly easily.

You should also check out implementing client side tools, like Tortoise SVN and Ankh SVN.

For NANT, check out these dimecasts here. Great tutorials on how to use nant effectively.

As you are from a VSS background, have a look at SourceGear Vault and SourceGear Fortress. If they do what you want, they will be quicker to learn due to the fact they are designed for people with a VSS mindset.

I think they may even be free for small teams.

(You will still wish to use nUnit for testing, however I would get the source code control and continuous integration sorted out first.)

If you do go with Subversion you will find it is very stable and more then capable of meeting most team’s need. Have a look at TortoiseSVN for a easy UI on top of Subversion

This probably isn't helpful to the question at hand but...

I'm not saying that there isn't one...but even if you had this manual, you'd have a lot of learning to do. You really need to learn each of the pieces in isolation before thinking of throwing them all together.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top