

Having FTP in your IDE is part of a broken model - tosbourn
http://tosbourn.com/2012/01/development/having-ftp-in-your-ide-is-part-of-a-broken-model/

======
FuzzyDunlop
I couldn't agree more with this. I spent the best part of a day setting up
Capistrano and Railsless-Deploy to obviate the need for manual FTP upload.
That was only at the start of this week but the flexibility and elegance of it
(comparative to opening up an FTP client) has enchanted me. A few shell
scripts later on the target server and it's sorted (with a few niggles still
to be ironed out).

I've been really disillusioned with FTP since just one flaw in the setup (as
much as setting the wrong group on files or someone chmodding them all over
the place) can muck your upload up. So you have to ssh in, change it all back,
and retry.

If you use a VCS you're probably uploading direct from your checkout, or
you're exporting it, if you're not savvy with the system. So you get dotfiles
scattered throughout, or an inaccurate export if there was a forgotten commit
or update.

Maybe your project has dependencies fetched in through some sort of manager.
You change them, fire up the FTP and upload, and forget to log into the server
to run an update or install to fetch in the altered dependencies. If you're a
PHP dev (who more likely than not doesn't know what PEAR is) coming into a
Python, Ruby, or Node environment, for example, this one will sting you every
time until you understand that you generally won't commit dependencies to a
repo - you'll fetch them in and rebuild when necessary.

How about restarting the server if you need to? Cleanup? Rolling back
_quickly_?

Even taking it all into consideration you have at the very least a two step
process: upload your files, ssh into the server to run additional setup. If
you end up doing this a lot in a short space of time due to carelessness and
unexpected bug-fixing __, you'll get frustrated very quickly.

Having suffered these problems ever since I started my job, it feels
liberating to keep my copy of FileZilla closed in favour of typing a single
command into my console:

    
    
        cap [staging|live] deploy
    

And if it isn't adequate, it's no problem. I can code another task and alter
its behaviour for the different environments.

It's liberating.

 __I had a terrible hour the other day wondering why identical code behaved
differently on two identical setups. There was much FTP uploading and server
restarting. Turned out that file permissions weren't being set the same. It
would have been a quick fix without all the manual work.

~~~
astrodust
If you don't have a _deployment strategy_ then you probably shouldn't be using
FTP in the first place, it's a sign you're doing something wrong.

Capistrano, as you mention, and tools like it, are the only way to go now. You
can't just slap a few files on the server and call it a day like you could
with some static HTML sites.

~~~
tosbourn
I very much agree with the need for a deployment strategy. Unfortunately
common literature on the subject still seems to point towards using FTP as the
corner stone of the release.

