Недавно мне поручено разработать и внедрить схему контроля версий, тестирования и развертывания исходного кода в компании, в которой я работаю.
Лично я несколько лет работал с Subversion над своими собственными проектами. Но я никогда не имел дело с этим в таком большом масштабе. Поэтому я решил спросить здесь, есть ли у кого-нибудь какие-либо комментарии или предложения по поводу следующей настройки, которую я разработал:
- Магистраль используется в качестве основного дерева разработки, как и должно быть
- Удаленные серверы (тестирование и производство) проверяют код из репозитория SVN.
- Тестирование серверов проверяет транк.
- Производственные серверы оформляют заказ в "производственной" ветке.
- Как только ствол считается готовым к производству, он объединяется в две ветви: «стабильный» и «производственный».
- Стабильная ветвь является ступенькой к производственной отрасли. Если ошибки обнаруживаются после запуска нового кода на рабочем сервере, стабильная ветвь используется для исправления ошибок, а также для тестирования исправлений ошибок.
- После исправления изменения объединяются в производственную ветку, а также обратно в ствол, где разработка продолжается, как обычно, с добавлением новых функций и чего угодно, независимо от того, какие исправления ошибок были необходимы.
Таким образом, разработка не должна останавливаться на транке, когда есть рабочий выпуск, так как исправления ошибок не зависят от транка. Кроме того, всегда есть ветка «только для чтения», в которой доступен последний стабильный и не содержащий ошибок код, даже в период интенсивного исправления ошибок.
Если у кого-то есть какие-либо предложения, комментарии или иное, я был бы очень признателен:)