I hate TortoiseSVN. The interface is great and it makes working with SVN a lot easier, but it’s so buggy it’s unbearable. Just a few of my complaints:
- It’s slow. After a fresh install of Windows XP and TortoiseSVN, it completely locked up Explorer while it attempted to traverse a massive repository I had.
- It causes weird explorer behavior. In particular, it feels like the screen is getting redrawn way too much.
- TSVNCache is a horrible idea, or at least horribly coded. I often find that I can’t eject removable media because TSVNCache is holding file locks on random files, even if explorer is closed. Why? I have no idea. The only solution has been to kill it.
- Sometimes, files randomly won’t have the right overlay for their status. Sometimes refreshing works, sometimes you have to exit (or even kill) explorer. In worse cases, TSVNCache must be killed, and in the worst case, you have to reboot (I’ve only had this happen once).
- On my Core 2 Duo with 2GB of RAM, TortoiseSVN adds noticeable delay to explorer. It takes a split second longer to draw everything. The bigger (or deeper) your repository gets, the longer the delay seems to be.
So, TSVN is buggy and slow. I now use the command line on Windows instead. Getting this working with SSH keys is a bit of a chore, but here’s what I did:
- Download the Windows PuTTY installer (I installed to C:\Program Files\PuTTy). Click here to get the exact package I did.
- Get the latest Subversion package for Windows. I chose the binaries compiled against “Apache 2.2” — the exact package was “svn-win32-1.4.5.zip.”
- Extract the zip file to somewhere. I chose C:\Tools and renamed the main subversion folder to get C:\Tools\Subversion.
- Go to Start -> Settings -> Control Panel -> Advanced -> Environment Variables.
- Edit the “Path” variable under “System variables,” and append the following string to the end, using your subversion’s bin path: ;C:\Tools\Subversion\bin
- Add a new variable under “User variables.” Call it “SVN_EDITOR” and set it to some text editor you like (mine points to C:\Windows\notepad.exe).
- Open notepad, and open the file “Application Data/Subversion/config” where “Application Data” is the folder under your user account (i.e. “C:\Documents and Settings\dvander\Application Data\…” or just “C:\Users” on Vista).
- Under the “[tunnels]” section, find the commented line that looks like:
# ssh = $SVN_SSH ssh
Replace it with:
ssh = C:/Program Files/PuTTy/plink.exe
Or something similar depending on where you installed plink.exe.
- Load pageant from the same folder plink is in (C:\Program Files\PuTTy\pageant.exe for me).
- Load your SSH keys into pageant.
If you don’t use SSH keys, or don’t know what they are, see this article.
You can now run subversion from the command line. Examples:
svn co svn+ssh://[email protected]/svnroot/sourcemm sourcemm cd sourcemm svn update svn commit ...etc...
If it doesn’t work, make sure your environment is updated. For example, start a new cmd session rather than using an old one.
Note: I never had any problems with TortoiseCVS.