Living With Subversion (Part 1)

Please note that this post was migrated to my new blog platform. There may be bad formating, broken links, images, downloads and so on. If you need an item on this page, please contact me and I will do my best to get it from my backups.

~E

Friends of mine ask a lot about my custom settings for TortoiseSVN.  To make it play nicer with Visual Studio, easier (or should I say dumb-proofing) the auto-merging, performance tweaks especially on laptops, and overall tips to ensure you don’t duplicate the mistakes my friends and I at Telligent have found through trial-n-error.  I occasionally forget these myself and have to dig around a previous machine or image snapshot to find the settings.  So here is a post to archive it all off for my records as well as for you to use for your reference.

Introduction

This four-part series targets the Microsoft .NET developer looking for a clean and stress-free environment utilizing Subversion for the first time, or even seasoned veterans by tweaking their installs and usability.  It especially targets those with SourceGear Vault experience and want that clean and easy experience with Subversion.

So with that in mind, we will be covering a number of applications to install.  Each with custom settings documented here that will help you get the most out of each, especially those with laptops.

A few definitions and what we will be using

First on this agenda targets those new to Subversion and its tools.  I’m not going to bore you with the details of the history of Subversion and CVS definitions or even how to use SubVersion.  All of that information is available in the docs for these.  Instead this is just a quick overview to help those moving to Subversion and what parts make it work that is out of the norm.

Subversion is an open-source product as you may already know.  A quick misnomer to those looking to switch is that you do not have to download and install Subversion itself.  Yes it is a client and server package that does it all, but it is not needed for your client (developer) machine since you are connecting remotely.  Why?  It’s all command-line based.  Those server admins looking for tips and tricks - I’ll cover ya’ll in another post. 

What you want instead is an Subversion-compatible GUI client and there are a few out there.  Telligent’s IT guru immediately adopted TortoiseSVN as the client for all when they switched to Subversion (i.e. only one they will support).  I’ve used a few others like RapidSVN and will have to agree that Tortoise, while being a Windows Shell Extension (yes, cringe), is the most feature-full version so far.  But feel free to write your own and drop me a line to beta test.  RapidSVN is coming along nicely and I continue to keep my eye on it.  Think RapidSVN = SourceGear Vault for Subversion, a stand-alone application that doesn’t integrate with Windows Explorer.  But for now, we’ll stick to TortoiseSVN until RapidSVN matures a bit more.

SourceGear’s Vault (SGV) is a very robust code repository system which can be configured for CVS or VSS.  Most of us developers have fallen in love with SGV, but I have come to recognize its inability to scale with a large number of repositories, check-ins, and branching within a single MSSQL install. 

The SGV Client is what I install to use as my TortoiseSVN merge and diff tool.  The SGV Client includes a nifty tool called SGDM.exe (SourceGear DiffMerge) that can be command-line driven.  So I have been cheating by installing the SGV Client 3.1.9 (I have not used a newer version yet), linking only to sgdm.exe, and ignoring the rest of the install.  And before you ask, yes the EULA for the Vault Client states a license is required to connect to a SGV repository.  We are not connecting to a repository, just using a tool which I could not find anything the EULA preventing that or by running it in a stand-alone environment.

Interestingly enough SourceGear has released a DiffMerge tool that is available for free, but I do not like this version.  I noticed the command-line arguments are much different.  I have installed it and tested a few merges, but the color-coding I did not like as much as the client’s version of this tool.  So for now, I am sticking to the SGV Client 3.1.9’s DiffMerge tool as it is tried and true.

Continue to Part 2

Living with Subversion (Part 1)

 

> Revision History
> About the author