SVN - Жизненный цикл

В этой главе обсуждается жизненный цикл системы контроля версий. В следующих главах мы увидим команду Subversion для каждой операции.

Создать репозиторий:

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

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

Проверять, выписываться

Операция «Оформить заказ» используется для создания рабочей копии из репозитория. Рабочая копия - это личное рабочее место, где разработчики вносят свои изменения, а затем отправляют эти изменения в репозиторий.

Обновить

Как следует из названия, операция «обновление» используется для обновления рабочей копии. Эта операция синхронизирует рабочую копию с репозиторием. Поскольку репозиторий используется всеми командами, другие разработчики могут фиксировать свои изменения, и ваша рабочая копия становится старше.

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

Теперь рабочая копия Тома устарела. Операция обновления извлечет последние изменения Джерри из репозитория и обновит рабочую копию Тома .

Выполнить изменения

После оформления заказа можно выполнять различные операции для внесения изменений. Редактировать - самая распространенная операция. Можно отредактировать существующий файл, чтобы добавить / удалить содержимое из файла.

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

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

Операция «Переименовать» изменяет имя файла / каталога. Операция «Перемещение» используется для перемещения файлов / каталогов из одного места в другое в дереве репозитория.

Просмотреть изменения

Когда вы извлекаете рабочую копию или обновляете рабочую копию, ваша рабочая копия полностью синхронизируется с репозиторием. Но по мере того, как вы вносите изменения в свою рабочую копию, она становится новее, чем репозиторий. И рекомендуется просмотреть свои изменения перед операцией фиксации.

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

Операция «Статус» предоставляет только список изменений, но не подробную информацию о них. Можно использовать операцию diff, чтобы просмотреть детали изменений, внесенных в рабочую копию.

Исправить ошибки

Допустим, кто-то внес изменения в свою рабочую копию, но теперь он хочет выбросить эти изменения. В этой ситуации поможет операция «возврат».

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

Разрешить конфликты:

Во время слияния могут возникнуть конфликты. Операция «Слияние» автоматически обрабатывает все, что можно сделать безопасно. Все остальное считается конфликтом. Например, файл hello.c был изменен в ветке и удален в другой ветке. Такая ситуация требует от человека принятия решения. Операция «разрешение» используется, чтобы помочь пользователю разобраться в вещах и сообщить VCS о способах разрешения конфликтов.

Зафиксировать изменения

Операция «Зафиксировать» используется для применения изменений из рабочей копии в репозитории. Эта операция изменяет репозиторий, и другие разработчики могут видеть эти изменения, обновляя свою рабочую копию.

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