views:

1280

answers:

5

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?

+1  A: 

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.

Joseph
I'd recommend Ankh SVN 2.0 over Visual SVN. Not only is it free (in both senses), Ankh uses Microsoft's API for source control whereas Visual SVN hacks things together with an add-in. If you want to see the sort of difference this makes, try renaming files.
Darcy Casselman
I agree, I was only suggesting to use Visual SVN as a repository manager of sorts. Creating, deleting, adding user security, groups, etc. I wasn't aware that Ankh SVN 2.0 had that kind of functionality?
Joseph
Thanks Joseph. I'll check these out :-)
Martin Smith
+1  A: 

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.

Jason Punyon
I see your point but I presume that there are still common integration scenarios/patterns?Maybe I'm a bit too optimistic that I will find one resource that just happens to cover this exact combo though!
Martin Smith
+1  A: 

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

Ian Ringrose
Thanks, I've read good things about Subversion and don't mind getting out the VSS mindset :-) I see your point about getting SCC and continuous integration sorted first but was just speccing out what my ideal book would cover at this point. This book may not exist of course!
Martin Smith
+3  A: 

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. :)

Binary Phile
I would recommend using a three way diff tool over WinMerge that only can show differences between two versions of a file (And not changes to files compared to a origin version). My personal favorite is SourceGear DiffMerge (Free download).
Bert Huijben
Thanks for the detailed response!
Martin Smith
+2  A: 

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.

Steve
I'm just starting to learn about CI, saw your post, saw the vid, and it was pretty helpful. It would have been great if you outlined some of the minimum server requirements (looks like you used a dev. machine), but that's stuff I'll be able to figure out. Nice job!
Dave