Как вы сказали, Subversion, вероятно, поможет, в вашем случае: использование некоторой системы управления версиями отлично , а Subversion работает отлично - и вам, вероятно, не нужна децентрализованная система (например, git / mercurial /...).
Основными преимуществами будут:
- проще поделиться модификациями, сделанными каждым разработчиком в вашей команде
- одно центральное местоположение, которое «является официальной версией источников»
- возможно, более простое развертывание.
Хотя я бы не просто использовал svn checkout на моем производственном сервере: хорошо, в некоторых случаях он может работать нормально, но, особенно, если вы иногда изменяете файлы непосредственно на производственном сервере (что вам определенно не следует делать !) , у вас возникнут проблемы (например, конфликты) на рабочем сервере в тот или иной день ...
Да, вы можете использовать svn merge в тестовом режиме, но этого не всегда достаточно ... И нет тестового прогона для обновления svn - а конфликт в файле PHP обычно означает ошибку синтаксического анализа; и это плохо, когда это происходит на рабочем сервере ^^
Вместо этого я бы:
- работает нормально, фиксируя SVN, когда все в порядке
- время от времени (например, за день до развертывания в производство) , выполните экспорт svn и разверните извлеченное приложение на промежуточном сервере
- , что означает, что вы можете тестировать в среде, которая ближе к производственной среде, чем ваша платформа разработки
- , а также означает, что ничто не должно идти в производство напрямую, без тестирования в рабочей среде!
- если на промежуточном сервере все в порядке, разверните этот же пакет на рабочем сервере.
Да, и, кстати, о процессе развертывания, вас может заинтересовать ответ, который я дал на этот вопрос некоторое время назад: Обновление веб-приложения без простоев
Как примечание: начать работать с такого рода процессами не всегда легко, поэтому:
- Подумайте как можно больше, прежде чем начинать; публикация на SO - это хорошее начало, но не забудьте обсудить со своими коллегами, которые будут использовать эту систему!
- Не торопитесь: скорее всего, спешки нет, и пара дней размышлений всегда полезны ;-)
- т.е. Подумайте о ситуациях, с которыми вы можете столкнуться, и ваших сценариях использования, чтобы убедиться, что процессы, которые вы создадите, будут работать для вас.