Команда "merge"
Обновлен: Ноябрь 2007
Команда merge применяет изменения одной ветви в другую.
Примечание. |
---|
Результаты этой команды не отображаются в Team Foundation (подсистема контроля версий) до тех пор, пока не будет выполнена операция возврата. Дополнительные сведения см. в разделе Практическое руководство. Возврат ожидающих изменений. |
Необходимые разрешения
Для использования команды merge необходимо задать для разрешения Извлечение значение Разрешить для папки рабочей области, содержащей целевой объект операции слияния. Кроме того, необходимо задать для разрешения Чтение значение Разрешить для папки рабочей области, содержащей источник. Дополнительные сведения см. в разделе Разрешения Team Foundation Server.
tf merge [/recursive] [/force] [/candidate] [/discard]
[/version:versionspec] [/lock:none|checkin|checkout] [/preview]
[/baseless] [/nosummary] [/noimplicitbaseless] source destination
Параметры
Аргумент |
Описание |
---|---|
versionspec |
Задает значение, например C2, для параметра /version. Дополнительные сведения об анализе спецификаций версий сервером Team Foundation для определения элементов, которые находятся в области его действия, см. в разделе Синтаксис командной строки (Team System). |
source |
Указывает файл или папку, которая будет являться источником слияния. |
Destination |
Указывает файл или папку, которая является целевым объектом операции слияния. |
Параметр |
Описание |
---|---|
/recursive |
Выполняет поиск спецификации элемента source в текущем каталоге и вложенных папках. |
/force |
Игнорирует журнал слияний и объединяет указанные изменения из источника в назначение, даже если некоторые из них или все были объединены раньше. |
/candidate |
Выводит на печать список всех наборов изменений в источнике, которые еще не были объединены в назначении. Список должен содержать идентификатор набора изменений, который не был объединен, и другие основные сведения об этом наборе. |
/discard |
Не выполняет операцию слияния, но обновляет журнал слияний для отслеживания места, где произошли эти действия. При этом набор изменений для определенного слияния не используется. |
/version |
Для выборочного слияния этот параметр задает диапазон, который следует объединить в целевом объекте. Для подхватывающего слияния этот параметр указывает версию, до которой необходимо объединить все необъединенные изменения. При выборочном слиянии диапазон версий представляет начальную и конечную точки объединяемого набора изменений. Например, при слиянии версий с 4 по 6 объединяются наборы изменений 4, 5 и 6. |
/lock |
Указывает тип блокировки или снимает ее с элемента. Дополнительные сведения см. в разделе Основные сведения о типах блокировки. Параметры блокировки
|
/preview |
Отображает предварительный результат слияния. |
/baseless |
Выполняет слияние без базовой версии. То есть позволяет пользователям объединять файлы и папки, не имеющие отношения слияния. После выполнения слияния без базовой версии появляется отношение слияния, и последующие объединения уже происходят на основе базовой версии. |
/nosummary |
Пропускает сводку сообщений об ошибках и предупреждений, если в результате будет отображено больше 10 строк выходных данных. |
/noimplicitbaseless |
Указывает, что Team Foundation не будет выполнять неявное слияние без базовой версии между двумя элементами, имеющими одинаковое относительное имя в двух несвязанных деревьях системы управления версиями. |
/noprompt |
Отключает отображение запросов на ввод данных пользователем. |
Заметки
Для применения изменений в существующей исходной ветви к существующей конечной ветви используется команда merge программы командной строки tf. В конечную ветвь можно выполнить слияние отдельного изменения или всего набора изменений. Можно объединить изменения из исходной ветви в конечную или наоборот.
С помощью команды merge можно также запросить изменения в исходной ветви, которые не были перемещены в конечную. Кроме того, эта команда позволяет указать, что некоторые изменения никогда не будут объединены из источника в целевой объект и не должны больше отображаться в качестве кандидатов для операции слияния.
Дополнительные сведения о поиске программы командной строки if см. в разделе Команды служебной программы командной строки "tf".
Слияние без базовой версии
Слияние без базовой версии используется для слияния элементов, которые не ответвляются друг от друга. Для выполнения слияния без базовой версии необходимо использовать команду tfmerge. При выполнении такого слияния Team Foundation не имеет информации об отношениях между файлами в ветвях. В этом случае разрешать конфликты необходимо вручную. После слияния без базовой версии и разрешения конфликтов Team Foundation выполняет запись в журнал слияний и устанавливает отношения между файлами и папками.
При выполнении команды tfmerge Team Foundation выполняет неявное слияние без базовой версии между двумя элементами с одинаковыми относительными именами в двух ранее связанных деревьях системы управления версиями. Например, может потребоваться выполнить слияние ветвей $SRC\ и $TGT. Обе ветви содержат несвязанные между собой файлы с одинаковым именем a.txt. При выполнении команды tf merge Team Foundation устанавливает отношение между двумя файлами a.txt, если файлы идентичны, если отключено FIPS-совместимое шифрование и если исходный файл не связан с каким-либо другим файлом в целевом местоположении.
Если выполняется команда tf merge с параметром /noimplicitbaseless, когда Team Foundation пытается объединить две ветви, два файла a.txt приведут к конфликту пространства имен при попытке возврата изменений. Для устранения конфликта необходимо переименовать один из этих файлов.
Примеры
В следующем примере выполняется объединение изменений из файла "MyFile_beta1", которые не были объединены в файл "MyFile_RTM".
c:\projects>tf merge MyFile_beta1 MyFile_RTM /recursive
В следующем примере в ветвь branch2 добавляются изменения только из набора изменений 137.
c:\projects>tf merge /version:C137~C137 branch1 branch2 /recursive
В следующем примере в ветвь branch1 добавляются все наборы изменений, от первого до C137 включительно.
c:\projects>tf merge /version:C137 branch1 branch2 /recursive
В следующем примере выполняется слияние всех изменений из наборов изменений от 100 до 137 включительно.
c:\projects>tf merge /version:C100~137 branch1 branch2 /recursive
В следующем примере выполняется печать списка наборов изменений в ветви1 (branch1), которые не были объединены в ветвь2 (branch2).
c:\projects>tf merge /candidate branch1 branch2 /recursive
В следующем примере выполняется печать списка наборов изменений в ветви2 (branch2), которые не были объединены обратно в ветвь1 (branch1).
c:\projects>tf merge /candidate branch2 branch1 /recursive
В следующем примере набор изменений 137 не учитывается как кандидат для объединения в ветвь2 (branch2).
c:\projects>tf merge /discard /version:C137 branch1 branch2 /recursive
См. также
Задачи
Пошаговое руководство. Дополнительные функциональные возможности системы управления версиями
Практическое руководство. Разрешение конфликтов между двумя файлами
Основные понятия
Ссылки
Синтаксис командной строки (Team System)