Ветвление папок и файлов
С помощью ветвей можно выполнять следующие задачи.
Управлять параллельной работой нескольких команд в одной базе кода
Изолировать риски, которые появляются в результате появления различных наборов изменений в кодовой базе
Создавать снимки и затем поддерживать последующие изолированные изменения (например, для создания ветви выпуска)
Например, на следующем рисунке показано как компания 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.
Для создания ветвление ветви выполните следующие действия
В обозревателе управления исходным кодом щелкните правой кнопкой мыши ветвь, для которой необходимо создать ветвление, далее выберите пункт Ветвление и объединение, далее выберите пункт Ветвление.
Откроется диалоговое окно Разветвление от.
В поле Имя целевой ветви укажите путь к новой ветви.
(Необязательно.) В разделе Разветвление от версии в списке По выберите один из следующих вариантов.
При выборе варианта Последняя версия ветвь будет создана на основе самой последней версии, хранящейся в системе управления версиями.
Если выбрать пункт Набор изменений, то в поле Набор изменений можно указать номер набора изменений.Или же можно нажать кнопку с многоточием (...), чтобы открыть диалоговое окно Поиск наборов изменений.
Дополнительные сведения см. в разделе Поиск и просмотр наборов изменений.
Если выбрать пункт Дата, можно ввести дату в поле Дата.
Нажмите кнопку Ветвление.
Будет создана ветвь. Она появится в обозревателе управления исходным кодом.
Примечание В отличие от большинства других операций системы управления версиями, эта операция не создает ожидающее изменение.Вместо этого, операция выполняется немедленно и ее нельзя отменить.
Ветвление файла или папки
Важно |
---|
В большинстве случаев использование приведенной в этом разделе процедуры не является рекомендуемым способом. |
Хотя по-прежнему можно создать ветвление от папки или файла непосредственно в Visual Studio ALM, в общем случае, операция такого вида не является рекомендуемым способом для большинства целей.Группам разработчиков рекомендуется ограничиться выполнением операций ветвления и слияния только между ветвями, как описано ранее в этом разделе.
Однако если существует особая необходимость для создания ветвления от файла или папки, для выполнения этой задачи с помощью Visual Studio ALM можно использовать следующую процедуру( сведения о способах выполнения слияния в командной строке см. в разделе Branch Command).
Необходимые разрешения
У пользователя, который выполняет эту процедуру, права Извлечь и Слияние для целевого пути должны иметь значение Разрешить.Дополнительные сведения см. в разделе Разрешения Team Foundation Server.
Чтобы создать ветвление для файла или папки, выполните следующие действия
В обозревателе управления исходным кодом щелкните правой кнопкой мыши папку или файл, которые необходимо преобразовать, выберите пункт Ветвление и объединение, а затем выберите пункт Ветвь.
Откроется диалоговое окно Ветвление.
В поле Целевой объект измените расположение и имя для новой ветви.
Кроме того, чтобы задать целевой объект, можно нажать кнопку Обзор.
В разделе Разветвление от версии в списке По выберите один из следующих вариантов.
При выборе варианта Последняя версия ветвь будет создана на основе самой последней версии, хранящейся в системе управления версиями.
Если выбрать пункт Набор изменений, то в поле Набор изменений можно указать номер набора изменений.Или же можно нажать кнопку с многоточием (...), чтобы открыть диалоговое окно Поиск наборов изменений.
Дополнительные сведения см. в разделе Поиск и просмотр наборов изменений.
Если выбрать пункт Дата, можно ввести дату в поле Дата.
При выборе варианта Метка можно ввести в поле Метка имя метки.Или же можно нажать кнопку с многоточием (...), чтобы открыть диалоговое окно Поиск метки.
Дополнительные сведения см. в разделе Использование меток для создания снимков файлов.
При выборе варианта Версия рабочей области ветвь будет создана для версии, хранящейся в локальной рабочей области.
(Необязательно) Можно установить флажок Создать локальные рабочие копии для новой ветви, чтобы создать копию элемента из системы управления версиями в локальной рабочей области.Снимите этот флажок, если создавать локальную копию не требуется и нужно улучшить производительность путем отказа от загрузки на компьютер большого количества элементов.
Нажмите кнопку ОК.
Будет создана ветвь. Она появится в обозревателе управления исходным кодом.
Примечание Если был установлен флажок Создать локальные рабочие копии для новой ветви и выбранная локальная папка не сопоставлена текущей рабочей области, появится окно Поиск папки.Найдите нужную папку или щелкните команду Создать новую папку, укажите папку для синхронизации с элементами в системе управления версиями, а затем нажмите кнопку ОК.
См. также
Задачи
Просмотр иерархии ветвей командного проекта
Основные понятия
Просмотр места и времени слияния наборов изменений