Yes, definitely. The settings.py file is just Python, so you can do anything in there - including setting things dynamically, and importing other files to override.
So there's two approaches here. The first is not to hard-code any paths, but calculate them dynamically.
PROJECT_ROOT = os.path.abspath(os.path.dirname(__file__))
TEMPLATE_DIRS = [
os.path.join(PROJECT_ROOT, "templates"),
]
etc. The magic Python keyword __file__ gives the path to the current file.
The second is to have a local_settings.py file outside of SVN, which is imported at the end of the main settings.py and overrides any settings there:
try:
from local_settings import *
except ImportError:
pass
The try/except is to ensure that it still works even if local_settings is not present.
Naturally, you could try a combination of those approaches.