FTP is good for smaller projects. But when you work on big projects, with a team, it is hard to manage your deployment with FTP alone. You need to sort items by date and need to upload one by one.

So, use rsync from command line, which does the synchronisation and it is much faster than FTP.

The advantage is ‘dry-run’. You can see those files which has changes on it. In is just like a test run and after if you are happy you can do the real go.

The option to exclude files or folders from synchronisation is another advantage. This will help to exclude caches, uploads or temporary files or folders, svn files , local configuration like db configs etc.

Here is one example:

rsync -v -t -r –dry-run –exclude ‘.svn’ ./ username@hostname.com:/full/path/to/your/webroot

You can use a many switches like -v (verbose) -r -t etc. (try –help for all)

–exclude switch is for to mention the file to be excluded. You can use exclude several times. If you have more files to exclude, you can put them in a text file and can use

–exclude-from switch to mention the file name which contains the list of files to be excluded

(For symfony developers they have a built-in rsync)

For more help, go: http://sial.org/howto/rsync/