Svn – Setting Up Subversion Server on Windows 2008 – Access When Ports Blocked

svnwindows-server-2008

I have a Subversion server set up at home. I can checkout files from a computers both in the same network as the server, and not in the same network using svn:\mydomain.com

The problem comes in when I try to connect from work, they block port 3690, so I cannot checkout files. I can however check out other subversion repositories from port 80 (like codeplex and collab.net).

How do I get my home server to allow me to use http://mydomain.com and checkout files, or even svn.mydomain.com ??

Let me note that this server is also a web server, so IIS is using port 80. And I would prefer an option that does not involve Apache, but if nothing else can be done, I will try it.

Best Answer

If you want to be able to use http://mydomain.com or svn.mydomain.com to check out files, then you will need to integrate with a web server, which generally involves port 80 (but doesn't have to).

IF you can manage to either run IIS on another port, or access your subversion via web on a port that is not port 80, you might want to check out VisualSVN. It's a free, current, all-in-one SVN solution specifically designed for windows servers. I have been using it a long time, and I love it. It has web access available out of the box. I believe it does use Apache, but they set it up for you.

My svn server is available internally and externally at https://svn.mydomain.com:8443/

Sorry if this doesn't help you under your tight constraints.

If you can get a second IP address, that would help. Or if you could put up an application-aware router in front of your web server, such as ISA server, you can route requests based on the domain name, and have multiple web servers with different internal IPs accessed by the same external IP (I do this).

Update: Alternative

Have you looked at HTTPort or a similar program? I used it when I worked for a big company to allow me to connect to arbitrary internet ports. What you do is this:

  1. Install HTTPort on your work machine.
  2. Map a local port on your work machine to an internet IP address and port. Let's say you point port 5000 to 1.2.3.4:3690 (your home computer)
  3. Point your svn client at work to localhost:5000
  4. HTTPort routes that out to your home computer.