Опубликован: 12.03.2009 | Уровень: для всех | Доступ: платный | ВУЗ: Санкт-Петербургский государственный университет
Лекция 14:

VSTS: конфигурационное управление

< Лекция 13 || Лекция 14: 1234 || Лекция 15 >

Управление ветками. Для поддержки конфигурационного управления в системе контроля версий TFS реализовано две команды: создание ветви ( Branch ) и интеграция ветвей ( Merge ). Эти команды доступны на файлах и папках в системе контроля версий. При выборе команды создания ветви открывается диалог ( рис. 14.8), позволяющий выбрать путь, куда следует скопировать (ответвить) выбранные файлы. После выполнения этой команды в системе контроля версий по указанному пути создастся полная копия выбранных файлов.

Создание новой ветви

увеличить изображение
Рис. 14.8. Создание новой ветви

Заметим, что после создания ветви она не попадает автоматически на сервер. Чтобы ветвь попала на сервер и стала доступна всем, необходимо выполнить операцию внесения изменений ( рис. 14.9).

Внесение изменений ответвления

увеличить изображение
Рис. 14.9. Внесение изменений ответвления

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

Область интеграции

увеличить изображение
Рис. 14.10. Область интеграции

На первом шаге ( рис. 14.10) разработчик задает откуда ( source branch ) и куда ( target branch ), а также изменения из какой области он хочет перенести (все вплоть до определенной версии, или только выбранные пакеты изменений).

Версия для интеграции

увеличить изображение
Рис. 14.11. Версия для интеграции

В случае, если разработчик выбрал перенос всех изменений, ему предлагается выбрать версию исходной ветви вплоть до которой изменения нужно перенести ( рис. 14.11). Разработчик может выбрать полный перенос, перенос до определенной даты, все предшествующие определенному пакету изменения, либо интеграцию до тех версий, которые находятся в текущем локальном рабочем пространстве.

Выбор пакетов для интеграции

увеличить изображение
Рис. 14.12. Выбор пакетов для интеграции

В случае, если разработчик выбрал интеграцию по пакетам изменений, ему предоставляется выбор среди не интегрированных пакетов ( рис. 14.12), и он может выбрать один или несколько из них.

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

Список конфликтов

увеличить изображение
Рис. 14.13. Список конфликтов

Достаточно часто при интеграции может возникнуть ситуация конфликта изменений, когда интегрируемый файл поменялся в обоих ветвях независимо друг от друга. В этом случае система контроля версий открывает окно со списком обнаруженных конфликтов ( рис. 14.13) и предлагает выбрать способ разрешения.

Разработчик может выбрать автоматический способ разрешения, который сработает только для тех файлов, в которых были изменены разные части. В случае, если автоматическое разрешение невозможно, система откроет диалог ручного разрешения – см. рис. 14.14.

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

увеличить изображение
Рис. 14.14. Разрешение конфликта

Для разрешения конкретного конфликта разработчик может выбрать несколько способов: автоматически объединить изменения (если возможно), принять изменения из исходной ветки, сохранить изменения целевой ветки или вручную разрешить все внутренние конфликты в специальном инструменте рис. 14.15.

Разрешение внутренних конфликтов

увеличить изображение
Рис. 14.15. Разрешение внутренних конфликтов

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

< Лекция 13 || Лекция 14: 1234 || Лекция 15 >
Данил Богданов
Данил Богданов
Илья Макаренко
Илья Макаренко

Добрый день.

Вопрос №1

Какова стоимость получения диплома о мини-МБА по данному курсу? Или ориентироваться на указанную на сайте?

Вопрос №2

Возможно ли начать обучение без потери результатов, не отправив документы на зачисление, а отправку выполнить позже?

Александр Кулаков
Александр Кулаков
Россия, Челябинск
Максим Овцин
Максим Овцин
Россия, Санкт-Петербург, НИУ ИТМО