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