agreed. since i don't trust the network i'm on though, i prefer to use TRAMP instead of ange-ftp. you can run ange-ftp over ssh but i find that more complicated and error prone than TRAMP.
so my setup is: code lives on a dev box (linux + apache), emacs/TRAMP to edit, usually an ssh session to the dev box too. everything's managed with cvs. i keep a dev and staging directory on the dev box. once i'm happy with the code in dev, i cvs commit, then update in the staging dir and make sure it still works there. if that's all good, i do a cvs update on the production box (solaris + apache). Makefiles are useful for handling any differences between configuration on dev vs production.
anders pearson