If you don't want to run your own repo server and are willing to spend some time learning mercurial or git, you can quickly setup a public or private repository at bitbucket or github.
The flow is: do your commits locally, push to online repo, login to your server, switch to the project and pull the changes. One rule of thumb is to never edit project code on the server, always commit locally and push, then pull to the server. local_settings.py is the only file that I edit directly on the server.
I use a pip requirements file for external dependencies, and its as easy as typing 'pip install --requirement external_apps.txt' to keep dependencies in sync. It also helps to use virtualenv to manage multiple projects (at the very least locally) and a fabric deployment script to simplify the deployment process.
Oh, and all VCS has a .ignore file where you can prevent files like local_settings.py and *.pyc files from appearing in your repo. Here is an example:
http://tr.im/sXHF