Предыдущий ролик Следующий ролик  

Видео урок: Централизованные и распределенные системы

Принципы контроля версий

Как мы уже говорили в разделе об истории контроля версий, есть два типа систем: централизованные и распределенные. Рабочий процесс в этих двух типах несколько отличается, поэтому имеет смысл рассмотреть их с точки зрения конечного пользователя. Итак, сначала мы поговорим о централизованном контроле версий. Как правило, в системах централизованного контроля версий системный администратор создает хранилище, потому что хранилище всегда будет удаленным. Затем вы создаете локальный рабочий набор, добавляете файлы или вносите изменения в удаленное хранилище, обновляете или восстанавливаете файлы в рабочем наборе.

Точно так же, другой пользователь централизованной системы контроля версий будет подключаться к удаленному хранилищу со своим рабочим набором. Он получит ваши файлы и обновления и добавит свои собственные, и вся работа с системой будет проходить как цикл внесения изменений - получения изменений. В централизованной системе управления версиями все хранится в удаленном хранилище. Преимущества этого заключаются в том, что системный администратор может отслеживать обновления, управлять резервными копиями, сделать системные возвраты для всех разработчиков сразу.

Но такие системы не вполне надежны, у вас могут возникнуть проблемы, когда вы не сможете получить доступ к централизованному серверу, если сервер не работает, если вы в самолете, и это может затруднять вашу работу. Подойдет ли вам централизованная система контроля версий, зависит от величины вашего проекта и величины вашей команды. В конце курса мы снова рассмотрим различные системы контроля версий и выделим критерии для выбора системы для того или иного проекта. Распределенные системы контроля версий работают немного по-другому.

Как правило, вы инициализируете хранилище, поскольку оно находится на локальной машине. Как и в централизованной системе контроля версий, у вас все еще есть рабочий набор, вы добавляете и обновляете файлы. Кроме того, вы можете создать дополнительное удаленное хранилище для резервного копирования. Сейчас, как правило, в качестве распределенных систем используются Git или Mercurial в сочетании с облачной системой, такой как GitHub, в которой создается резервная копия локального хранилища. Для обмена данными с облаком используются термины пуш и пул.

Аналогично, если удаленное хранилище находится не в облаке, а на компьютере другого разработчика, мы будем использовать импорт и экспорт для передачи данных между хранилищами. Это основные различия между централизованными и распределенными системами контроля версий. Далее мы подробно разберем добавление, получение файлов и изменений, процесс отслеживания истории и все, что вам необходимо понять, прежде чем мы начнем работать с конкретными реализациями систем контроля версий.