для небольших систем на основе php, что мы привыкли делать так:
для изменений кода, мы используем ant-скрипт, запущенный из eclipse, который сравнивает локальную (dev) систему с удаленной (qa / prod / what) системой, затем архивирует все измененные файлы, scp zip в удаленную систему и распакуйте его на цель. Конечно, у нас есть автоматическое резервное копирование и тому подобное. Если это будет интересно, я смогу опубликовать пример сценария в ближайшие несколько дней.
для изменений sql, мы стараемся поддерживать сценарии для каждого изменения (обычно в нашем трекере ошибок) и вручную запускать каждое изменение в целевой системе.
для больших систем вы действительно должны использовать что-то более надежное.
обратите внимание, что если ваша система prod извлекает данные непосредственно из svn, то вы депонируете изменения, которые, возможно, не были должным образом протестированы (вы можете забыть зафиксировать что-то, протестировать локальную систему, и все будет сломано в prod ...)