Мы решили начать использовать контроль версий для сайта, который я поддерживаю / разрабатываю с двумя другими людьми. В настоящее время мы используем следующий процесс: веб-сайт размещен на выделенном сервере. Наша работа по разработке также выполняется на этом сервере, но на копии сайта в подпапке живого сайта. Когда реализация новой функции завершена, мы копируем измененные файлы из этой подпапки на действующий веб-сайт. Как вы, вероятно, можете себе представить, развертывание новой функции таким способом довольно громоздко, и это также делает его очень трудным для разработки с несколькими людьми одновременно.
Чтобы улучшить наш процесс разработки, мы решили начать использовать контроль версий. У меня есть некоторые базовые знания по использованию систем контроля версий (Subversion и Mercurial), а также я немного разбираюсь в различиях между централизованными и распределенными системами контроля версий. Однако этого, вероятно, недостаточно для того, чтобы решить, какой будет наилучшая установка для наших требований.
Я обратился за помощью к нашему хостинг-провайдеру. У них есть опыт настройки Subversion, но нет опыта работы с Mercurial / Git. Таким образом, они могут настроить Subversion для нас, но когда мы решим начать использовать Mercurial / Git, мы должны сделать это сами. Но прежде чем мы примем это решение, я хотел бы получить несколько советов о том, что будет лучшим вариантом для наших требований, и я изложу его ниже. Я не против потратить некоторое время на изучение того, как правильно настроить решение с Mercurial / Git, если оно явно лучше для наших требований, но если решения Subversion будет достаточно для наших требований, у меня есть лучшие способы потратить мое время :)
Наши основные требования:
Простое развертывание новых функций на веб-сайте.
Возможность отменить значительные изменения в живом веб-сайте (на основе отзывов пользователей) даже после развертывания других функций на живом веб-сайте. Я знаю, что для этого всегда будут возможности конфликтов, но какое решение лучше всего подойдет для этого?
И, возможно, есть и другие явные преимущества / недостатки выбора одного из двух решений по сравнению с другим, которое я пропустил.