Один из способов, которыми я занимался в прошлом, - это заставить рабочий код на самом деле быть живым клиентом Subversion, вытягивая ветку 'production'.
Таким образом, вы выполняете свою работу, как обычно, в ветке разработки, и, когда вы будете готовы, вы копируете копию в производственную ветку. Синхронизируйте производственные серверы, и вы живы. Если что-то идет не так, вы всегда можете выполнить синхронизацию с более старой версией.
Для дополнительных очков вы можете добавить промежуточную ветвь, чтобы вы могли отследить все вещи, которые изменились, что не в вашем коде. Затем вы добавляете их в сценарий развертывания, который будет корректировать производственные системы по мере необходимости.