What to do about TortoiseSVN 1.5.x svn+ssh “Connection closed unexpectedly” errors on Vista

Annoying.  If, like me, you’re suddenly seeing this (despite assurances that it’s been fixed), I have two recommendations:

  1. Revert to an older TortoiseSVN 1.4.x build if you can find it.
  2. Try SmartSVN

SmartSVN is a Java-based free and “pro” drop-in replacement for Tortoise.  Unlike other SVN clients, you can use it exactly as you were using TortoiseSVN.  Possibly not as feature-rich, but considerably more polished than our favorite old Testudine.  Runs everywhere.  And it works over svn+ssh.

Clean copies from Subversion

This blog is turning into an elaborate mnemonic device.  This time, some more Subversion stuff I can never remember how to do.

To get a clean checkout (sans the .svn directories) of a trunk, branch, or tag from your repository, use the following:

$ svn export svn://server.com/repo/branch/name

Simple. Use the -r parameter to indicate a specific revision.

Run svnserve, run!

More notes to self.

Fancy shmancy init scripts aside, this is the fastest way to get a Subversion server up and running:

/usr/bin/svnserve --daemon --root /var/svn

root is the directory housing one’s repositories; looks something like this:

/var/svn/
conf/
project1/
project2/
repos/

Make sure the svn port 3690 is open.

Subversion Project Startup Cheat Sheet

This is one of those things I have to do once every so often and that I can never freaking remember how to do.

  1. Create a repository on the server. AFAIK can’t be done over the network; must be done on the machine hosting the repository.

    # svnadmin create /path/to/repositoryname

  2. Import your files (often from a remote machine).

    $ svn import /tmp/project svn://url.com/repositoryname -m "initial freaking import"

  3. Check them out again to your desired directory.

    $ svn checkout svn://url.com/repositoryname

That’s it! See the Quick Start in the online book if you need to mess around with branches and tags and the like.