SVN - Жизненный цикл
В этой главе обсуждается жизненный цикл системы контроля версий. В следующих главах мы увидим команду Subversion для каждой операции.
Создать репозиторий:
Репозиторий - это центральное место, где разработчики хранят всю свою работу. В репозитории хранятся не только файлы, но и история изменений. Это означает, что он поддерживает историю изменений, внесенных в файлы.
Операция «создать» используется для создания нового репозитория. В большинстве случаев эта операция выполняется только один раз. Когда вы создаете новый репозиторий, ваша VCS будет ожидать, что вы скажете что-то, чтобы идентифицировать его, например, где вы хотите его создать или какое имя следует дать репозиторию.
Проверять, выписываться
Операция «Оформить заказ» используется для создания рабочей копии из репозитория. Рабочая копия - это личное рабочее место, где разработчики вносят свои изменения, а затем отправляют эти изменения в репозиторий.
Обновить
Как следует из названия, операция «обновление» используется для обновления рабочей копии. Эта операция синхронизирует рабочую копию с репозиторием. Поскольку репозиторий используется всеми командами, другие разработчики могут фиксировать свои изменения, и ваша рабочая копия становится старше.
Предположим, что Том и Джерри - два разработчика, работающих над проектом. Оба извлекают последнюю версию из репозитория и начинают работать. На данный момент их рабочие копии полностью синхронизированы с репозиторием. Джерри очень эффективно завершает свою работу и фиксирует свои изменения в репозитории.
Теперь рабочая копия Тома устарела. Операция обновления извлечет последние изменения Джерри из репозитория и обновит рабочую копию Тома .
Выполнить изменения
После оформления заказа можно выполнять различные операции для внесения изменений. Редактировать - самая распространенная операция. Можно отредактировать существующий файл, чтобы добавить / удалить содержимое из файла.
Можно добавлять файлы / каталоги. Но сразу эти файлы / каталоги не становятся частью репозитория, вместо этого они добавляются в список ожидающих изменений и становятся частью репозитория после операции фиксации.
Аналогичным образом можно удалять файлы / каталоги. Операция удаления немедленно удаляет файл из рабочей копии, но фактическое удаление файла добавляется в список ожидающих изменений, и изменения вносятся в репозиторий после операции фиксации.
Операция «Переименовать» изменяет имя файла / каталога. Операция «Перемещение» используется для перемещения файлов / каталогов из одного места в другое в дереве репозитория.
Просмотреть изменения
Когда вы извлекаете рабочую копию или обновляете рабочую копию, ваша рабочая копия полностью синхронизируется с репозиторием. Но по мере того, как вы вносите изменения в свою рабочую копию, она становится новее, чем репозиторий. И рекомендуется просмотреть свои изменения перед операцией фиксации.
Операция «Статус» отображает изменения, которые были внесены в рабочую копию. Как мы уже упоминали ранее, всякий раз, когда вы вносите изменения в рабочую копию, все эти изменения становятся частью списка ожидающих изменений. А операция «статус» используется для просмотра списка ожидающих изменений.
Операция «Статус» предоставляет только список изменений, но не подробную информацию о них. Можно использовать операцию diff, чтобы просмотреть детали изменений, внесенных в рабочую копию.
Исправить ошибки
Допустим, кто-то внес изменения в свою рабочую копию, но теперь он хочет выбросить эти изменения. В этой ситуации поможет операция «возврат».
Операция возврата отменяет изменения, внесенные в рабочую копию. Можно вернуть один или несколько файлов / каталогов. Также можно вернуть всю рабочую копию. В этом случае операция «возврат» уничтожит список ожидающих изменений и вернет рабочую копию в исходное состояние.
Разрешить конфликты:
Во время слияния могут возникнуть конфликты. Операция «Слияние» автоматически обрабатывает все, что можно сделать безопасно. Все остальное считается конфликтом. Например, файл hello.c был изменен в ветке и удален в другой ветке. Такая ситуация требует от человека принятия решения. Операция «разрешение» используется, чтобы помочь пользователю разобраться в вещах и сообщить VCS о способах разрешения конфликтов.
Зафиксировать изменения
Операция «Зафиксировать» используется для применения изменений из рабочей копии в репозитории. Эта операция изменяет репозиторий, и другие разработчики могут видеть эти изменения, обновляя свою рабочую копию.
Перед фиксацией необходимо добавить файлы / каталоги в список ожидающих изменений. Это место, где изменения ждут своей фиксации. При фиксации мы обычно предоставляем сообщение журнала, чтобы объяснить, почему кто-то внес изменения. Это сообщение журнала становится частью истории репозитория. Фиксация - это атомарная операция, что означает либо успешное выполнение всей фиксации, либо откат. Пользователи никогда не видят незавершенную фиксацию.