Поделиться через


Слияние файлов и папок

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

В этом разделе приведены рекомендованные процедуры использования графического пользовательского интерфейса Visual Studio Application Lifecycle Management (ALM) для слияния изменений, внесенных в код в различных ветвях. Сведения о способах выполнения слияния в командной строке см. в разделе Команда merge.

Необходимые разрешения

Для выполнения данных процедур необходимо наличие следующих разрешений.

  • Необходимо разрешение на Чтение элемента в исходном дереве и разрешение на Извлечение элемента в конечном дереве со значениями Разрешить.

  • Необходимо разрешение на Слияние, заданное для конечного пути.

  • Если элемент в конечном дереве будет переименован, необходимо задать значение Разрешить для разрешения Извлечение как в исходном, так и в конечном дереве.

  • Если какие-либо файлы, затронутые операцией, блокированы, необходимо иметь разрешение Блокировка со значением Разрешить. Дополнительные сведения о разрешениях см. в разделе Разрешения Team Foundation Server.

Запуск слияния в окне "Система управления версиями"

Важно!

Выпуск Visual Studio Team Foundation Server 2010 положил начало различению ветвей и папок.Например, на следующем рисунке показано отображение ветвей и папок с помощью разных значков.

Ветвь и папка

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

Слияние ветвей, файлов и папок в обозревателе управления исходным кодом

  1. В обозревателе управления исходным кодом выберите сливаемые ветвь, папку или файл.

  2. В меню Файл последовательно выберите пункты Система управления версиями, Ветвление и объединение и Объединить.

    Отобразится мастер слияния системы управления версиями. Сведения об использовании этого мастера для выполнения слияния см. в подразделе Выполнение слияния с помощью мастера слияния системы управления версиями.

Запуск слияния в окне "Отслеживание наборов изменений"

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

Важно!

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

Ветвь и папка

Дополнительные сведения см. в разделе Ветвление папок и файлов.

Перетаскивание набора изменений в окно "Отслеживание наборов изменений"

  1. В обозревателе управления исходным кодом выберите ветвь, папку или файл внутри ветви.

  2. Щелкните выбранный элемент правой кнопкой мыши и выберите пункт Просмотреть журнал.

  3. В окне Журнал щелкните правой кнопкой мыши набор изменений, который требуется просмотреть, и выберите пункт Отслеживать набор изменений.

    Отобразится диалоговое окно Выбор ветвей.

  4. (Необязательно.) В списке Конечные ветви установите флажки у ветвей, которые требуется просмотреть, и снимите флажки у ветвей, которые предпочтительно скрыть.

  5. Нажмите кнопку Отобразить.

    Отобразится окно Отслеживание наборов изменений.

  6. Перетащите ветвь, содержащую набор изменений, на конечную ветвь.

    Отобразится мастер слияния системы управления версиями. Сведения об использовании этого мастера для выполнения слияния см. в подразделе Выполнение слияния с помощью мастера слияния системы управления версиями. Выполнение слияния с помощью мастера слияния системы управления версиями

Пример. Добавление нового метода

Чтобы проиллюстрировать практическое применение описанной выше процедуры, рассмотрим следующий пример. Юлия попросила Кирилла реализовать новый метод в некоторой части кода группы функций А, которую она использует в коде своей группы функций Б. Кирилл написал код для нового метода и затем возвратил его в ветвь группы функций А. Уходя с работы, он встретил Юлию в коридоре и сообщил, что возвратил новый метод.

Юлия вернулась на рабочее место и отыскала новейший исходный код, но не нашла возвращенный Кириллом новый метод. Она перешла в обозреватель управления исходным кодом, в окне Журнал просмотрела ветвь группы функций А и обнаружила, что Кирилл действительно возвратил новый метод в наборе изменений 50. Когда она щелкнула правой кнопкой мыши набор изменений 50 и выбрала команду Отслеживать набор изменений, на экране отобразилось следующее окно.

Окно "Отслеживание наборов изменений": слияние с родительской ветвью

Окно отслеживания наборов изменений: слияние с родительской ветвью

В окне Отслеживание наборов изменений Юлия обнаружила, что Кирилл возвратил метод в наборе изменений 50 и выполнил слияние этого набора с набором 51 в ветви разработки "Dev". Однако Юлия не сможет получить новый код, пока не будет выполнено слияние набора изменений 50 с ветвью группы функций Б. Поэтому она перетаскивает ветвь "Dev" на ветвь группы функций Б, чтобы запустился мастер слияния системы управления версиями, с помощью которого она затем выполняет слияние.

Выполнение слияния с помощью мастера слияния системы управления версиями

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

Слияние файлов, папок или ветвей с помощью мастера слияния системы управления версиями

  1. В мастере слияния системы управления версиями в поле Исходная ветвь введите имя исходной ветви группового проекта или нажмите кнопку Обзор, чтобы выбрать ее в списке.

  2. В раскрывающемся списке Конечная ветвь выберите конечную ветвь группового проекта, с которой требуется объединить исходную ветвь.

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

    Совет

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

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

      Набор изменений

      Слияние с указанием версии набора изменений.

      Дата

      Слияние с указанием даты.

      Метка

      Слияние с указанием версии метки.

      Последняя версия

      Слияние с указанием последней версии.

      Рабочая область

      Слияние с указанием версии рабочей области.

    • Если выбран пункт Выбранные наборы изменений, откроется страница Выбор наборов изменений для слияния с конечной ветвью. Выберите набор изменений для слияния.

      Совет

      Для выбора нескольких элементов в непрерывном диапазоне нажмите и удерживайте клавишу CONTROL или SHIFT.

  4. Нажмите кнопку Далее, а затем на странице Выполнение операции объединения — кнопку Готово.

    Будет создано одно или несколько ожидающих изменений.

  5. (Необязательно.) Если требуется возвратить ожидающие изменения немедленно, выполните следующие действия.

    1. В меню Вид наведите указатель мыши на пункт Другие окна и выберите пункт Ожидающие изменения.

    2. Когда откроется окно "Ожидающие изменения", возвратите изменения. Дополнительные сведения см. в разделе Возврат ожидающих изменений.

См. также

Задачи

Разрешение конфликтов между двумя файлами

Ссылки

Команда merge

Команда Merges

Основные понятия

Использование обозревателя управления исходным кодом

Другие ресурсы

Ветвление и объединение