If you have to slog data back and forth between your local computer and an FTP server, you need sitecopy. Sitecopy allows you to quickly mirror your source code on an FTP server by running the command:
sitecopy --update foosite
This assumes that foosite has been configured in your .sitecopyrc and contains goodies like the hostname to FTP to and authentication information. Having a trivial and reliable way to push updates to an FTP server is absolutely essential for nearly all web development.
One of the coolest aspects of sitecopy --update is that it will do The Right Thing and just update the files that have changed since your last set of modifications. It tracks what needs to be updated, so you don't have to.
Sitecopy is a command line utility, so it's easy to use from make or any 'ol shell script. I'm sure it was designed for Unix, though I have no problem running it on Windows Cygwin.
Sitecopy is also useful for pulling sites down to your local machine. Just do:
sitecopy --fetch barsite sitecopy --synch barsite
Just make sure you read the Sitecopy manual page fully - sitecopy gives you enough rope to both climb mountains and hang yourself. So be careful, deleting your files is possible, though unlikely.