14 July 2007
Living with Subversion (Part 1)

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

 

Reader's Comments

This is part duex in the series Living with Subversion , starting to get into the nit-n-gritty. Configure

# 14 July 07 2:23 PM

In part three of Living with Subversion , we cover one of the biggest reason of this series: Using a

# 14 July 07 2:26 PM

In the forth and final part of my series, Living with Subversion , I cover a number of performance tips

# 14 July 07 2:26 PM
Shane Day said:

Eric,

Interesting use of SGV Client - we're in a similar situation in that we're currently using a combination of SGV and SVN, and we want to migrate to SVN.  The unfortunate bit is trying to keep the history of source control changes from SGV into a new SVN repository.  Do you know of any way possible to do this?  A migration tool, perhaps?  I've been scouring the web to no avail.

# 24 August 07 3:31 AM

We didn't migrate at Telligent.  

Basically they gave us access to SVN and told us only new projects will be sourced via SVN.

What about labeling the last version, and just making the switch to SVN.  No history, but that's what the SGV is archived there for I suppose.

Or, make the final release of the version you're devving on and switch to SVN for the next trunkline.

But sorry, I can't help with the migration aspect.  Good luck!

# 24 August 07 11:18 AM
Shane Day said:

Thanks for the response, Eric.  I'm thinking our best bet is to hand over the SourceGear Vault to our solutions team, as they seem keen to keep using it (something about not trusting source control outside of Visual Studio - conversely I don't trust source control _inside_ Visual Studio).  Otherwise I may have to take the approach you've mentioned here.

Shane

# 28 August 07 3:07 AM
Leave a Comment
Comment Policy: HTML is not allowed. Links and line breaks are converted automatically.
(required) 
(optional)
(required) 

 


  
Enter the anti-spam code you see above (required)

 

Comment Notifications
Subscribe to this post's comments using RSS

If you would like to receive an email when updates are made to this post, please register here