Here's my setup (quite common, I think):
My repositories are on a separate linux server, already setup and working.
In my windows machine, I 've installed TortoiseSVN and that's it. Everything Just Works(tm).
Yup, pretty normal
Except you do need svn. Sorry, I thought it came installed with Tortoise.
This dialog has two text boxes. The first one was empty (the subversion path). The second contained the path to tortoise's plink.
This very much surprises me.
The first one should never be empty. Lacking a better alternative, the plugin tries to find svn.exe with a more or less brute-force search of the most likely locations on the first run (see SubversionPlugin::NastyFind()). If nothing is found, then "svn.exe" is used, assuming that svn is in the path. If svnbinary is ever empty, it is explicitely set to "svn.exe".
The second one, too, surprises me, as it should point to TortoiseProc.exe. The path is obtained from the registry (HKEY_LOCAL_MACHINE\SOFTWARE\TortoiseCVS\RootDir) and TortoiseProc is appended. If that fails, NastyFind() is run on TortoiseProc, too, and if that fails, then Tortoise is assumed not installed. I will have to look over that again, there must be something omitted?
What the program needs is the full pathname to svn like for example C:\subversion\svn.exe (and, if you want to use a Tortoise features like branching or the conflict editor, the full path to TortoiseProc.exe, too)
I looked around a bit and dismissed the dialog (I didn't edit anything). Btw, nice options you got there
Note a few may still not be functional, but the majority should be.
How should I know?
By reading the project's documentation
No seriously, getting svn tunnelling to work *IS* evil, and yes, it does not run out of the box.
If possible, you will not want to use svn+ssh://, but https:// instead. I use plain svn:// at home because it needs zero setup and has zero problems. You just enter your username and password in the checkout dialog and you're fine. Your server is in a DMZ anyway, I assume, so why bother.
Alternatively, for the internet, you can use apache/WebDAV. The advantage is that it has *very* fine grained access control (well, everything that apache does, in fact), and you need no special setup on the client.
But now for wrath, and for glory, and for a red dawn. You do want to use svn+ssh://
What you have to do is this:
1. Understand how svn+ssh:// works. Using this protocol, svn does not authenticate or anything. Instead, it runs via a SSH tunnel as a local user on the server (SSH does everything).
svn pretty much expects a tunnel to be readily available when it calls for it. This means that you have to setup tunnelling so that it works autonomously. It also means that the password fields in the checkout dialog are useless.
2. Have some software installed and running to use SSH. I use putty/plink, but anything should do.
3. I assume you have been using SSH for years anyway, but nevertheless:
- generate a private/public key pair and install your public key on the server
- if you are foolhardy, use a key without password (I do that, *cough*)
- otherwise, put pageant into the autostart folder, so you have to enter your password once after startup (I am too lazy for that, but I tried, it does work).
- make a putty configuration for your server and enter your private key under SSH --> Auth
- now, for as long as pageant is running after entering your password (or always, if you have none), you should be able to double-click on your session, and a SSH window opens without prompting for a password. That works? Great, because that is what svn needs.
- Now, edit %USERPROFILE%/Application Data/Subversion/config. Uncomment [tunnel] and put in the path to plink.exe. Do make sure you use
forward slashes. This is a really nasty stumbling block. Save the config file. Open up code::blocks, enjoy.