Our I.T. dept doesn’t allow connections to the SVN server from outside the physical office. (They’re just kind of like that.) I need to work on projects when I’m not at the office.
I could just check out the project and wait until I come in to do a check-in. Maybe that would be best. But I like to check in frequently. I’m wondering if there’s some way I can keep a project in two repositories and keep them both up to date. That way I’d always be able to check in somewhere in case my HD dies. I have my own repository on a VPS server that I use for personal projects.
I investigated the svn switch command. With my current project in both repos I tried switching my working copy from personal to work SVN servers…
$ svn switch --relocate svn+ssh://personalvps.com/svn/project/trunk svn://worksvn/project/trunk svn: The repository at 'svn://worksvn/project/trunk' has uuid '2baef97e-42ce-488c-bbba-c2625158c643', but the WC has 'f13e1f32-dc92-4c4a-b84d-34a59fe32063'
Then I tried adding the --username and --password params but got an error saying ‘no entry found.’
Is this even possible or is it totally impractical?
UPDATE
Thanks for the answers. Unfortunately, any solution that involves action from I.T. (slight policy change, change a setting somewhere, install something) is not on the table. I have to find a solution within the current setup, which is no connections from outside except our Web servers.
I’ll take a look at distributed version control.
As a last-ditch effort, you can always poke a hole in your corporate firewall with SSH. Look into ‘ssh tunnels’ (and also, come to think of it, ‘poke a hole in the firewall’ might be a good search term too). I think you’ll want either the -L or -R ssh option, but I can’t recall which or even if they’re the right ones for sure. And if you’re running windows, it’s still possible to use the same exact technique if you install Cygwin first.
EDIT: Sorry I wasn’t more clear on how this works. The option you want is -R. It opens a port on the remote machine (for listening). When something connects to that port on the remote machine, the connection travels back down the SSH connection to the local machine, then is fowarded on to the server of your choice in the local network. You could connect to your home computer from your work computer before you leave at night with SSH to open the tunnel. Then when you’re working from home, you set your SVN working copy (using
svn switch --relocate) to point at your home computer. BTW, the SVN port is 3690 by default, if you’re running the svnserve daemon.