Команда "difference"
Обновлен: Ноябрь 2007
Сравнивает и по возможности отображает отличия между двумя файлами, файлами в двух папках или набором отложенных изменений и локальным файлом или файлом сервера.
Требуемые разрешения
Для использования команды difference необходимо иметь разрешение Чтение со значением Разрешить для всех указанных элементов. Дополнительные сведения см. в разделе Разрешения Team Foundation Server.
tf diff[erence] itemspec [/version:versionspec] [/type:filetype]
[/format:format [/ignorespace] [/ignoreeol] [/ignorecase] [/recursive]
[/options]
tf diff[erence] itemspec itemspec2 [/type:filetype] [/format: format]
[/ignorespace] [/ignoreeol] [/ignorecase] [/recursive] [/options]
tf diff[erence] [/shelveset:shelvesetname[;shelvesetowner]]
shelveset_itemspec [/server: servername] [/type:filetype]
[/format: format] [/ignorespace] [/ignoreeol] [/ignorecase]
[/recursive] [/options]
tf diff[erence] /configure
Параметры
Аргумент |
Описание |
---|---|
itemspec |
Обязательный. Задает элемент для сравнения. Если версия или путь не указаны, предполагается текущая версия рабочей области. Принимает локальный путь и путь к серверу Team Foundation (подсистема контроля версий). Дополнительные сведения о том, как Team Foundation выполняет анализ спецификаций элементов, чтобы определить, какие из них находятся в области его действия, см. в разделе Синтаксис командной строки (Team System). Команда difference не поддерживает подстановочные знаки. Данный параметр нельзя использовать вместе с параметром /shelveset. |
Itemspec2 |
Необязательный. Элемент, с которым нужно сравнить элемент. Если не указан второй элемент, будет использоваться последняя версия сервера Team Foundation (подсистема контроля версий) элемента. |
Filetype |
Предоставляет значение для параметра /type. Можно указать "binary" или "text" и номер кодовой страницы или понятное имя для кодовой страницы. |
Format |
Используется с параметром /format для указания выходного формата одного из следующих типов.
Описание этих форматов см. в подразделе "Примечания" данного раздела. |
Versionspec |
Предоставляемое пользователем значение параметра /version. Дополнительные сведения о том, как Team Foundation выполняет анализ спецификаций версий для определения элементов, находящихся в области его действия, см. в разделе Синтаксис командной строки (Team System). |
servername |
Предоставляемое пользователем значение параметра /server. Пример: "teamfoundation2". |
Shelvesetowner |
Определяет владельца набора отложенных изменений по имени пользователя. Если значение параметра не указано, подразумевается текущий пользователь. |
Shelvesetname |
Указывает имя набора отложенных изменений. Обратите внимание, что в Team Foundation Server может существовать несколько наборов отложенных изменений с одинаковыми именами до тех пор, пока каждый из них будет принадлежать разным пользователям. |
Shelveset_itemspec |
Задает имя папки или файла в наборе отложенных изменений для сравнения с базовой версией набора отложенных изменений. |
Параметр |
Описание |
---|---|
/type |
Переопределяет обнаруженные кодировки и использует заданную кодировку для представления файлов в механизме различий. |
/version |
Указывает версию файла или папки для сравнения. Если не указан параметр versionspec, Team Foundation по умолчанию использует версию рабочей области. Вместо использования флага /version можно указать версии, поместив в конце каждого имени файла точку с запятой и спецификатор версии. |
/format |
Задает выходной формат, указанный с помощью аргумента format. |
/ignorespace |
Не выделяет различия в пробелах в сравниваемых файлах. |
/ignoreeol |
Игнорирует различия между знаками новой строки в двух файлах или вервиях файла. Действие /ignoreeol отличается от действия /ignoreSpace. /ignorespace обрабатывает восемь пробелов так же, как один. Однако если используется параметр /ignoreeol и файл A содержит два знака новой строки между неизменными частями текста, а файл Б — один, в результате отобразится отличие. Если оба файла имеют только одну новую строку, но файл А использует \r\n в качестве новой строки, а файл Б — \n, параметр /ignoreEOL проигнорирует данный момент как отличие. |
/ignorecase |
Не выделяет различия в использовании регистра для букв в сравниваемых файлах. |
/recursive |
Сравнивает различия между текущей папкой и всеми вложенными в нее папками. |
/options |
Задает строку параметра для средства, вызываемого различиями. Дополнительные сведения см. в разделах Практическое руководство. Сопоставление типа файла со средством сравнения и Практическое руководство. Сопоставление типа файла со средством слияния. |
/server |
Определяет Team Foundation Server. Этот параметр является обязательным, если вызов команды осуществляется из каталога, который не сопоставлен рабочей области. |
/shelveset |
Указывает набор отложенных изменений для сравнения с версией сервера Team Foundation (подсистема контроля версий), которая лежит в основе набора отложенных изменений. Этот параметр нельзя использовать вместе с аргументом itemspec. Для сравнения отдельных элементов набора отложенных изменений можно указать shelveset_itemspec. |
/noprompt |
Отключает вывод диалоговых окон, которые в противном случае отображались бы во время завершения этой операции. |
/configure |
Открывает диалоговое окно Настройка средств пользователя. Это средство также доступно из пользовательского интерфейса Visual Studio. Дополнительные сведения см. в разделе Практическое руководство. Сопоставление типа файла со средством сравнения. |
Заметки
![]() |
---|
Чтобы выполнить данную команду, в командной строке введите tf diff или tf difference. |
Команда difference используется для сравнения и, если возможно, для отображения различий между следующими объектами.
Два различных файла или две версии одного файла.
Один или несколько элементов в папке.
Один, несколько или все элементы в наборе отложенных изменений в Team Foundation Server.
Для сравнения файлов с версиями и без них воспользуйтесь командой difference.
Team Foundation классифицирует все файлы по типам. Если текстовые файлы имеют одинаковую кодировку, их можно объединять и сравнивать параллельно или построчно. Если нужно сравнить два файла с разными кодировками, свойство кодирования для файла можно временно замаскировать или переопределить с помощью параметра /type. Двоичные файлы сравнивать можно, но объединять нельзя. При передаче одного или нескольких двоичных файлов в команду "difference" Team Foundation указывает наличие различий между файлом и сравниваемым элементом. Дополнительные сведения о том, как Team Foundation различает и обрабатывает файлы разных типов, см. в разделе Типы файлов.
Если задано два имени файлов, сравниваются два файла. Вместо использования флага /version можно указать версии, поместив в конце каждого имени файла точку с запятой и спецификатор версии.
Если в команду "difference" передается только элемент.
Если версия не указывается, по умолчанию текущая версия рабочей области сравнивается с базовой версией рабочей области. Например, tf difference header.h сравнивает текущую версию header.h с версией, лежащей в основе header.h.
Если в спецификацию элемента входит спецификация версии, например tf difference header.h;LBeta1, Team Foundation сравнивает эту версию с текущей версией рабочей области на диске.
Если указывается диапазон версий, например /version:C1~C4, сравниваются версии файла, находящиеся в его крайних точках.
Дополнительные сведения о поиске программы командной строки tf см. в разделе Команды служебной программы командной строки "tf".
Типы выходных форматов
Параметр format, используемый с параметром /format, задает ряд различных выходных форматов. Доступны следующие выходные типы.
Visual
Тип формата Visual открывает внешнее отличающееся приложение. По умолчанию запускается программа diffmerge.exe.
Brief
Краткий формат печатает, отличаются ли сравниваемые файлы.
Context
Формат Context предоставляет строки контекста для различий в файлах. Данный формат является производным от выходного формата diff –c на основе UNIX.
RCS
Формат RCS аналогичен /format:unix за исключением отсутствия строк контекста.
Нет никакой особой обработки отсутствующего маркера конца строки в конце файла.
SS
SS является выходным параметром различий по умолчанию для Visual SourceSafe. Дополнительные сведения см. в статье "Diff (Command Line)" на веб-узле Майкрософт (https://go.microsoft.com/fwlink/?LinkId=99139).
SS_SideBySide
SS_SideBySide является параллельным выходным параметром по умолчанию для Visual SourceSafe.
SS_Unix
SS_Unix аналогичен выходному формату /format:unix, но /format:ss_unix содержит строки контекста, а /format:unix — нет.
Unified
Формат Unified является производным выходного формата diff –u на основе UNIX. /format:context повторяет идентичные строки контекста между отличающимися строками, а /format:unified не делает этого.
Формат Unified выводит новую унифицированную строку различий (@@ ... @@) только если расстояние до следующей строки различий превышает число строк контекста.
Unix
Этот выходной тип является производным от выходного формата команды diff на основе UNIX.
Выходной формат Unix формируется следующим образом.
<metadataline> "< " line prefix for lines from the first file "---" line "> " line prefix for lines from the second file <metadataline> can be one of these possibilities: #a#,# -- add lines from line # in file1 into file2 at lines #-># #,#d# -- delete lines from line # -> # in file 1 from file2 at line # #,#c#,# -- change lines from line # -> # in file1 into the lines in file2 at line # -> # # signs seprated by commas indicate a line range. # signs before the character indicate line numbers in the first file # signs after the character indidicate line numbers in the second file /// No end of line marker at the end of the file: /// \ No newline at end of file
Примеры
В следующем примере отображаются различия между локальной версией файла "314.cs" и версией рабочей области файла "314.cs", которая является версией файла, извлеченного с сервера Team Foundation (подсистема контроля версий).
c:\projects>tf difference 314.cs
В следующем примере отображаются все файлы, измененные в исходной папке. Файлы, измененные во вложенных папках, не выводятся.
c:\projects>tf difference src /format:visual
В следующем примере отображаются различия между набором изменений 3 и набором изменений 8 файла "1254.cs".
c:\projects>tf difference /version:C3~C8 1254.cs
В следующем примере отображаются различия между версией файла "314.cs", принадлежащей к метке "release", и версией, принадлежащей набору изменений 3200.
c:\projects>tf difference 314.cs;Lrelease 314.cs;C3200
или
c:\projects>tf difference 314.cs;Lrelease~C3200
В следующем примере отображается различие между версиями файла "e271.cs", которые пользователь с именем "Nadia" включил в набор отложенных изменений "PeerCodeReview8", и базовой версией набора отложенных изменений, на основе которой были внесены изменения. Здесь также отображаются типы изменений, отложенных относительно файла "e271.cs" во время включения в набор изменений.
c:\projects> tf difference /shelveset:PeerCodeReview8;Nadia e271.cs
В следующем примере отображаются различия между всеми файлами в наборе отложенных изменений "PeerCodeReview2" и базовой версией набора отложенных изменений этих файлов.
c:\projects> tf difference /shelveset:PeerCodeReview2