Учебники

SVN — жизненный цикл

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

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

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

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

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

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

Обновить

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

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

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

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

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

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

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

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

Обзор изменений

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

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

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

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

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

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

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

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

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

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

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