James Kovacs

Sponsors

The Lounge

Advertisement

Images in this post missing? We recently lost them in a site migration. We're working to restore these as you read this. Should you need an image in an emergency, please contact us at imagehelp@codebetter.com
Subversion Turns 1.5

Given the number of developers using Subversion, I'm surprised that no one on my blogroll has mentioned the new Subversion clients released in the last few weeks. Subversion, TortoiseSVN, and VisualSVN have all synchronized their version numbers on v1.5. I'll talk about TortoiseSVN and Subversion changes. VisualSVN has some minor enhancements that basically expose the features introduced by Subversion 1.5. I'll leave you to investigate them yourself.

TortoiseSVN

Let's talk TortoiseSVN... You can get the new client from here. N.B. If you're running 64-bit Windows (XP, Vista, or Server 2003/2008), make sure you grab the 64-bit installer. Shell extensions run directly inside Windows Explorer, which on 64-bit Windows is a 64-bit process. So you don't get any WoW (Windows-on-Windows) goodness that allows 32-bit executables to run on 64-bit Windows.

New Overlays

The most noticeable change is the new overlay icons.

image

Unversioned and ignored files now have their own overlays, which I find especially useful.  The problem in the past was that Windows only has 12 overlay slots available.  These slots could be easily exhausted if you had multiple shell extensions installed, such as TortoiseSVN and TortoiseCVS.  Tortoise clients now have a common overlay handler, which somewhat mitigates this problem.

image

Delete Unversioned Files

Over time, working copies tend to get crufty - at least mine do. I end up having extra unversioned files and directories - from tools, builds, half-implemented refactorings that you think better of - littering your working copy. Every once in awhile, I would just grab a clean working copy and delete the old. I then went to the trouble of creating PowerShell script to clean up my working copy. Now TortoiseSVN 1.5 includes this feature. Simply SHIFT-right click in your working copy and select "Delete unversioned items" from the context menu.  N.B. This option only appears if you hold down SHIFT.

image

Other Improvements

The repository browser has also been completely reworked.  It now shows a two pane view similar to Windows Explorer.

image

The revision graph has also been rewritten and is much easier to use.

image

Client-side caching has been improved, making TortoiseSVN more responsive. Merging has improved. Changelists have been added. Lots of new features. You can read the release notes for more information.

Subversion

Subversion has made a lot improvements, which can be found in the release notes. If you're just running TortoiseSVN, you don't need to install the Subversion binaries. TortoiseSVN includes the SVN libraries. You only need the Subversion client and/or server if:

  1. You want to use Subversion from the command line via svn.exe and/or svnadmin.exe either directly or in scripts.
  2. You are running a server using svnserve (svn://) or Apache (http:// or https://).

You can download the Windows client and/or server from a few different places, each with advantages and disadvantages:

  • CollabNet - On the positive side, the MSI installer is quick to get you up and running. It adds svn.exe to your path and, if you install the server, you can select between svnserve.exe (svn://) and Apache (http:// or https://) easily. On the downside, you have to register on the CollabNet site and the downloaded binaries do not include support for Berkley DB, only FSFS. FSFS is the default for new repositories, but if you've got some older repositories around, they're probably BDB. The CollabNet binaries complain bitterly about BDB repositories: "svnadmin: Failed to load module for FS type 'bdb'". Honestly I would recommend staying away from this package.
  • Tigris - Scroll down to svn-win32-1.5.0.zip and grab that. It includes both FSFS and BDB support, but you're on your own configuring svnserve.exe. It's not that hard and I document the steps here. This package is great if you just want to run svnserve.exe to access your repositories via svn://. If you want to run Apache to enable access your repositories over http:// and https://, you're on your own to download and configure Apache. If you want to do that, then I recommend...
  • VisualSVN Server - Although VisualSVN (the Visual Studio add-in) is a commercial product, VisualSVN Server is completely free. This is the easiest way to get a Subversion server up and running with Apache. You can go from a clean Windows box to a working Subversion server in under 10 minutes. As an added bonus, it includes a MMC management console.

Upgrading the Repository Format (optional)

Although Subversion 1.5 can work with older repository formats, some of the new features, such as merge tracking, require you to upgrade your repository to the latest format. (See "Compatbility Concerns" in the release notes for full information regarding required client, server, and repository versions for various features.) Subversion will not upgrade your repository automatically. If you want to use the new features requiring a repository upgrade, you must run the following command:

svnadmin upgrade <PATH_TO_REPO>

where <PATH_TO_REPO> is the physical path and not a URL.

If you need to upgrade a lot of repositories and you've got PowerShell installed, you can do the following (assuming your repository root is c:\SrcRepos):

cd \SrcRepos
dir -name | foreach { svnadmin upgrade $_ }

Cyrus SASL and NTLM

TortoiseSVN and svnserve now include Cyrus SASL (Simple Authentication and Security Layer) support, which allows you to use a variety of authentication/encryption mechanisms, most importantly for Windows users - NTLM and Kerberos. Subversion clients and servers prior to 1.5 only support ANONYMOUS and CRAM-MD5. You'll need to be running v1.5 on both sides of the wire to use the other protocols. The ZIP package from Tigris includes NTLM, but not Kerberos. If you want to use Kerberos, you'll have to download saslGSSAPI.dll and add it to your sasl-plugins directory.

WARNING: I spent the better part of an afternoon trying to get svnserve.exe authenticating against the local Security Account Metabase (SAM) without success. (i.e. Using local Windows accounts to authenticate Subversion users.) The documentation is sparse to non-existent. I was able to get SASL to read its configuration and load the NTLM plug-in, but I could never successfully authenticate. Even with the correct username/password, it just prompted me again. It could be a problem with SASL defaulting to NTLMv1, which Vista disables by default for security reasons. If I figure out how to make this work, I'll post a solution...


Posted 07-04-2008 4:49 PM by james.kovacs
Filed under:

[Advertisement]

Comments

DotNetKicks.com wrote Upgrading to the new version of Subversion and Tortoise
on 07-05-2008 8:08 AM

You've been kicked (a good thing) - Trackback from DotNetKicks.com

Dew Drop – July 5, 2008 | Alvin Ashcraft's Morning Dew wrote Dew Drop &ndash; July 5, 2008 | Alvin Ashcraft's Morning Dew
on 07-05-2008 9:21 AM

Pingback from  Dew Drop &ndash; July 5, 2008 | Alvin Ashcraft's Morning Dew

Bruno Caimar wrote re: Subversion Turns 1.5
on 07-05-2008 8:18 PM

Nice post ! I was surprised that nobody comment about the news in SVN 1.5. I've tested everything yet but the new features looks like really good.

Useful Links #8 | GrantPalin.com wrote Useful Links #8 | GrantPalin.com
on 07-06-2008 5:59 PM

Pingback from  Useful Links #8 | GrantPalin.com

FuzzLinks.com » Subversion Turns 1.5 - James Kovacs wrote FuzzLinks.com &raquo; Subversion Turns 1.5 - James Kovacs
on 07-07-2008 1:05 AM

Pingback from  FuzzLinks.com &raquo; Subversion Turns 1.5 - James Kovacs

Gary B wrote re: Subversion Turns 1.5
on 07-07-2008 12:33 PM

This is probably a stupid comment but I don't think you'll want to upgrade your TortoiseSVN to 1.5 if you don't upgrade your subversion server.

I seemed to have a problem with my local repository when I did that.  I ended up uninstalling TortoiseSVN and reinstalling the older one.

rascunho » Blog Archive » links for 2008-07-07 wrote rascunho &raquo; Blog Archive &raquo; links for 2008-07-07
on 07-07-2008 4:34 PM

Pingback from  rascunho  &raquo; Blog Archive   &raquo; links for 2008-07-07

Nick Stanton wrote re: Subversion Turns 1.5
on 07-08-2008 10:13 AM

Apart from the new embeddded Tortoise tools at 1.5, there is also an svn.exe file there too (if you search for it) which is required for Zend IDE 5.5 which had complained after I'd updated to the latest Tortoise.

james.kovacs wrote re: Subversion Turns 1.5
on 07-08-2008 11:18 AM

@Gary - You do not need to upgrade your Subversion server to run TortoiseSVN 1.5. I'm happily accessing projects on SourceForge, Tigris, and elsewhere using the new TortoiseSVN client. What you need to watch out for is that, unlike svn.exe, TortoiseSVN will upgrade local repositories to the 1.5 format when first accessed. So if you have local repositories (accessed via file:///) used by both TortoiseSVN and svn.exe, you need to upgrade both at the same time. For me, I run svnserve.exe on my main machine, but still use svn:// to access them so that I can move the repositories or working copies without having to perform a relocate operation.

Gary B wrote re: Subversion Turns 1.5
on 07-08-2008 11:46 AM

Thanks for the comment James.  

My issue must have been something else then.  Visual Studio just started crashing upon opening a specific solution I work with that is versioned.  My other solutions worked just fine so I linked my upgrade to the problem.  Once I downgraded TortiouseSVN everything worked again as normal.

I'll probably give it another try and see what happens.

Thomas Williams Tech Blog wrote The Perfect Storm of Source Control
on 07-16-2008 8:58 AM

The Perfect Storm of Source Control

Clayton wrote re: Subversion Turns 1.5
on 07-23-2008 8:38 PM

Anyone had any success with Cyrus SASL and NTLM yet?

Khalid wrote re: Subversion Turns 1.5
on 07-26-2008 12:00 AM

Thanks for the post, I was looking for upgrade instructions on the client server and repos, you've done a great job, i'll start our svn upgrade and will post here if i find anything worth posting :)

Recent Faves Tagged With "visualsvn" : MyNetFaves wrote Recent Faves Tagged With "visualsvn" : MyNetFaves
on 12-05-2008 4:35 PM

Pingback from  Recent Faves Tagged With "visualsvn" : MyNetFaves

Bookmarks about Subversion wrote Bookmarks about Subversion
on 12-19-2008 11:00 PM

Pingback from  Bookmarks about Subversion

Recent Faves Tagged With "fsfs" : MyNetFaves wrote Recent Faves Tagged With "fsfs" : MyNetFaves
on 01-02-2009 11:35 PM

Pingback from  Recent Faves Tagged With "fsfs" : MyNetFaves

Damien McGivern wrote re: Subversion Turns 1.5
on 01-30-2009 11:28 AM

Hi,

did you get SASL and NTLM working?

James Kovacs wrote re: Subversion Turns 1.5
on 01-30-2009 2:36 PM

@Damien - I haven't spent any more time trying to get SASL/NTLM working. According to VisualSVN, VisualSVN Server has solved the issues and permits NTLM auth against SVN. Plus VisualSVN Server is free.  (Basically they just bundle together svn, Apache, and a management console for you.) BTW - You don't need to be using VisualSVN (VS add-in) to use VisualSVN Server.

Recent Links Tagged With "sasl" - JabberTags wrote Recent Links Tagged With "sasl" - JabberTags
on 02-07-2009 3:34 PM

Pingback from  Recent Links Tagged With "sasl" - JabberTags

Add a Comment

(required)  
(optional)
(required)  
Remember Me?