Ветвление папок и файлов
С помощью ветвей можно выполнять следующие задачи.
Управлять параллельной работой нескольких команд в одной базе кода
Изолировать риски, которые появляются в результате появления различных наборов изменений в кодовой базе
Создавать снимки и затем поддерживать последующие изолированные изменения (например, для создания ветви выпуска)
Например, на следующем рисунке показано как компания DinnerNow разработала структуру ветвей, которая соответствует потребностям бизнеса.
Структура ветвей компании DinnerNow в окне "Иерархия"
Команда разработчиков функций А и команда разработчиков функций Б выполняют свою работу в отдельных ветвях. Когда команды готовы объединить результаты своей работы, они выполняют слияние своих ветвей в ветвь Dev. Когда сборки из ветви Dev становятся стабильными и готовыми для тестирования, команды выполняют слияние ветви Dev в ветвь Test.
С выходом каждой версии, выполняется слияние ветви Main в ветвь новой версии, например ветвь Version1 и ветвь Version2. Используя эту стратегию, компания, при необходимости, может расширять возможности или вносить исправления отдельно в каждую прошлую версию продукта.
Выполнение операции ветвления можно производить с помощью Обозревателя управления исходным кодом, как показано в этом разделе, или с помощью команды Branch в командной строке. Для получения дополнительной информации см. Branch Command.
Совет
Ветвление представляет собой важный и эффективный способ создания параллельного набора версий файлов.Однако использование ветвей может увеличить сложность и стоимость проекта.Например, при выполнении слияния двух ветвей может потребоваться разрешение конфликтов.
Перед созданием ветви необходимо учитывать возможность применения метки, использование которой в определенных ситуациях лучше отвечает требованиям.Использование метки позволяет легко и быстро создать снимок файлов. Таким образом впоследствии можно будет извлечь или собрать файлы в этом состоянии.Для получения дополнительной информации см. Использование меток для создания снимков файлов.
Преобразование папки в ветвь
Выпуск Visual Studio Team Foundation Server 2010 положил начало различению ветвей и папок. На следующем рисунке показан верхний уровень структуры папок компании DinnerNow:
Структура папок компании DinnerNow в обозревателе управления исходным кодом.
Как показано на рисунке, по-прежнему можно использовать папки для организации ветвей в иерархии управления версиями командного проекта. Однако папки и ветви имеют различный внешний вид и возможности. Если щелкнуть правой кнопкой мыши по папке или ветви и выбрать пункт Свойства, будут отображены различные сведения и различные функциональные возможности.
При выполнении операций ветвления, ветви обладают важными преимуществами над папками. Ветви поддерживают функции управления версиями, которые обеспечивают дополнительную видимость в структуре ветвей и в местах, в которых произошло слияние наборов изменений. (Дополнительные сведения см. по ссылкам в подразделе "См. также" далее в этом разделе).
Хотя ветвление и слияние можно выполнять и среди папок, однако группам разработчиков рекомендуется ограничиться выполнением этих операций только между ветвями. В следующей процедуре описывается порядок преобразования папки в ветвь.
Необходимые разрешения
Для выполнения следующей процедуры разрешение Управление ветвями должно быть установлено в значение Разрешить. Для получения дополнительной информации см. Справочник по разрешениям Team Foundation Server.
Для преобразования папки в ветвь выполните следующие действия
В Обозревателе управления исходным кодом проверьте, что папка, которую требуется преобразовать, имеется на сервере.
Если рядом с папкой отображается значок ожидающего добавления (), щелкните эту папку правой кнопкой мыши и выберите команду Вернуть ожидающие изменения.
Щелкните правой кнопкой мыши папку, которую необходимо преобразовать, выберите пункт Ветвление и объединение, а затем выберите пункт Преобразовать в ветвь.
Появляется диалоговое окно Преобразовать папку в ветвь.
Внимание! Если выполняется преобразование папки, которая уже преобразована в ветвь, возможно требуется установить флажок Выполнить рекурсивно это преобразование для всех разветвленных дочерних папок. В результате этого, также преобразуются в ветви все папки, которые ответвляются от этой папки.
(Необязательно) В поле Владелец введите имя владельца этой ветви.
Примечание
Поле "Владелец" предоставляется только для сведения.Пользователю, который указан в поле "Владелец", дополнительные разрешения не предоставляются.
(Необязательно) В поле Описание введите сведения, которые могут быть полезными для других участников команды, которые должны пользоваться этой ветвью или понимать ее назначение.
Нажмите кнопку Преобразовать.
Важно!
Ветви не могут быть вложенными; следовательно, если папка содержит ветвь или содержится в ветви, преобразовать ее в ветвь невозможно.Например, на рисунке ниже показано, что ни родительский, ни дочерний элемент ветви FeatureTeamA не могут быть преобразованы в ветвь.
После преобразования папки в ветвь можно будет снова преобразовать ее в папку, если команда примет решение об изменении структуры ветвей.
Преобразование ветви в папку
В Обозревателе управления исходным кодом выберите ветвь, которую требуется преобразовать.
В меню Файл последовательно выберите пункты Система управления версиями, Ветвление и объединение и Преобразовать в папку.
Когда появится сообщение Преобразовать ветвь обратно в папку, нажмите кнопку Да.
Ветвление ветви
После преобразования папки в ветвь можно создать другие ветвления от этой ветви. В следующей процедуре показано, как с помощью графического интерфейса пользователя Visual Studio Application Lifecycle Management (ALM) можно создать ветвление от ветви (сведения о способах выполнения слияния в командной строке см. в разделе Branch Command).
Необходимые разрешения
Для выполнения этой процедуры разрешение Управление ветвями для путей к исходной и целевой ветвям должно быть установлено в значение Разрешить. Разрешение Слияние для пути целевой ветви должно быть установлено в значение Разрешить. Для получения дополнительной информации см. Справочник по разрешениям Team Foundation Server.
Для создания ветвление ветви выполните следующие действия
В Обозревателе управления исходным кодом щелкните правой кнопкой мыши ветвь, для которой необходимо создать ветвление, далее выберите пункт Ветвление и объединение, далее выберите пункт Ветвление.
Откроется диалоговое окно Разветвление от.
В поле Конечное имя ветви укажите путь к новой ветви.
(Необязательно.) В разделе Ветвь от версии в списке По выберите один из следующих вариантов.
При выборе варианта Последняя версия ветвь будет создана на основе самой последней версии, хранящейся в системе управления версиями.
Если выбрать пункт Набор изменений, то в поле Набор изменений можно указать номер набора изменений. Или же можно нажать кнопку с многоточием (...), чтобы открыть диалоговое окно Поиск наборов изменений.
Для получения дополнительной информации см. Поиск и просмотр наборов изменений.
Если выбрать пункт Дата, можно ввести дату в поле Дата.
Нажмите кнопку Ветвление.
Будет создана ветвь. Она появится в Обозревателе управления исходным кодом.
Примечание В отличие от большинства других операций системы управления версиями, эта операция не создает ожидающее изменение. Вместо этого, операция выполняется немедленно и ее нельзя отменить.
Ветвление файла или папки
Хотя можно выполнять ветвление файла или папки напрямую, делать это не рекомендуется. В противном случае нельзя будет просматривать иерархию ветвей или отслеживать набора изменений. Рекомендуется ограничиться выполнением операций ветвления и слияния только между ветвями, как описано ранее в этом разделе.
Однако если существует особая необходимость для создания ветвления от файла или папки, для выполнения этой задачи можно использовать следующую процедуру (сведения о способах выполнения слияния в командной строке см. в разделе Branch Command).
Необходимые разрешения
У пользователя, который выполняет эту процедуру, права Извлечь и Слияние для целевого пути должны иметь значение Разрешить. Для получения дополнительной информации см. Справочник по разрешениям Team Foundation Server.
Чтобы создать ветвление для файла или папки, выполните следующие действия
В Обозревателе управления исходным кодом щелкните правой кнопкой мыши папку или файл, которые необходимо преобразовать, выберите пункт Ветвление и объединение, а затем выберите пункт Ветвь.
Откроется диалоговое окно Ветвление.
В поле Целевой объект измените расположение и имя для новой ветви.
Кроме того, чтобы задать целевой объект, можно нажать кнопку Обзор.
В разделе Ветвь от версии в списке По выберите один из следующих вариантов.
При выборе варианта Последняя версия ветвь будет создана на основе самой последней версии, хранящейся в системе управления версиями.
Если выбрать пункт Набор изменений, то в поле Набор изменений можно указать номер набора изменений. Или же можно нажать кнопку с многоточием (...), чтобы открыть диалоговое окно Поиск наборов изменений.
Для получения дополнительной информации см. Поиск и просмотр наборов изменений.
Если выбрать пункт Дата, можно ввести дату в поле Дата.
При выборе варианта Метка можно ввести в поле Метка имя метки. Или же можно нажать кнопку с многоточием (...), чтобы открыть диалоговое окно Поиск метки.
Для получения дополнительной информации см. Использование меток для создания снимков файлов.
При выборе варианта Версия рабочей области ветвь будет создана для версии, хранящейся в локальной рабочей области.
(Необязательно) Можно установить флажок Создать локальные рабочие копии для новой ветви, чтобы создать копию элемента из системы управления версиями в локальной рабочей области. Снимите этот флажок, если создавать локальную копию не требуется и нужно улучшить производительность путем отказа от загрузки на компьютер большого количества элементов.
Нажмите кнопку ОК.
Будет создана ветвь. Она появится в Обозревателе управления исходным кодом.
Примечание
Если был установлен флажок Создать локальные рабочие копии для новой ветви и выбранная локальная папка не сопоставлена текущей рабочей области, появится окно Поиск папки.Найдите нужную папку или щелкните команду Создать новую папку, укажите папку для синхронизации с элементами в системе управления версиями, а затем нажмите кнопку ОК.
См. также
Задачи
Просмотр иерархии ветвей командного проекта
Основные понятия
Просмотр места и времени слияния наборов изменений