Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Thanks for the insight, I never thought of symlinks on the production server.

My question though was whether my entire webroot should be a CVS check-out directory or it should be uploaded from, say, a build machine. Both ways look Ok, but there may be some advantages of one of these methods that I'm not aware of. That was my question.

I always used the upload scheme, which worked fine when I was alone or with an ultra-small team. For the upload method though there should be only one "uploader", and with small teams it's usually the team leader.



There's no practical difference between checking out directly onto the CVS server vs. checking out locally and then uploading. You get the same files either way, it's just that they're sent via CVS one way and FTP the other. I suppose that you may not want your source code travelling in the clear over the web, but you should be able to use SFTP or tunnel CVS over SSH. I know you can do it with SVN - I connect to our SVN server via HTTPS.

If you do make your web root a CVS directory, be sure to block access to CVS metadata. I basically whitelist a few known extensions (.php, .html, .css, .js, .png, .jpeg, .gif, and .swf) and block access to anything else. You don't want to give random websurfers access to your CVSROOT.


Sure, I forgot when was the last time I used an unencrypted protocol with production servers. CVS works through SSH, Dreamweaver now supports SFTP too.

One last question: does Subversion require a daemon on server-side or it can also work on the shell level like CVS?


UI-wise, svn is a shell command like CVS. Tortoise also has a Windows shell extension for it (like CVS), and I think it's supported out of the box in Eclipse and some other IDEs.

As for what's going on on the server - SVN has a bunch of possible access protocols. There's a native svnserve protocol that IIRC runs a daemon server and accepts connections over the net. There's a local filesystem module. There's also a WebDAV module that lets you access it through Apache. That's what I use: I have a subdomain setup that virtual-hosts through Apache, with Subversion piped through SSL and all other content blocked.


By "shell-level" I meant a cvs client, be it GUI or a shell command, can connect to a server that doesn't run any special daemons except sshd or telnet. Essentially, the cvs client logs in via telnet or ssh as a user and works on the file-system level. The less components you have to run something the better, always.

I looked at their web site but still don't get it - does SVN require something other than sshd/telnet on the remote server? But never mind, I'll figure it.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: