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


Команда Difference

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

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

Для использования команды difference необходимо иметь разрешение Чтение со значением Разрешить для всех указанных элементов. Дополнительные сведения см. в разделе Разрешения Team Foundation Server.

tf diff[erence] itemspec [/version:versionspec] [/type:filetype] 
[/format:format [/ignorespace] [/ignoreeol] [/ignorecase] [/recursive] 
[/options][/noprompt][/login:username,[password]]

tf diff[erence] itemspec itemspec2 [/type:filetype] [/format: format] 
[/ignorespace] [/ignoreeol] [/ignorecase] [/recursive] [/options] [/noprompt][/login:username,[password]]

tf diff[erence] [/shelveset:shelvesetname[;shelvesetowner]] 
shelveset_itemspec [/type:filetype] 
[/format: format] [/ignorespace] [/ignoreeol] [/ignorecase] 
[/recursive] [/options] [/noprompt][/login:username,[password]]

tf diff[erence] /configure

Параметры

Аргумент

Описание

itemspec

Обязательный. Задает элемент для сравнения. Если версия или путь не указаны, предполагается текущая версия рабочей области. Принимает локальный путь и путь к серверу Team Foundation (подсистема контроля версий).

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

Команда difference не поддерживает подстановочные знаки.

Данный параметр нельзя использовать вместе с параметром /shelveset.

Itemspec2

Необязательный. Элемент, с которым нужно сравнить элемент. Если не указан второй элемент, будет использоваться последняя версия сервера Team Foundation (подсистема контроля версий) элемента.

Filetype

Предоставляет значение для параметра /type. Можно указать "binary" или "text" и номер кодовой страницы или понятное имя для кодовой страницы.

Format

Используется с параметром /format для указания выходного формата одного из следующих типов.

  • Визуальный элемент

  • Brief

  • Контекст

  • RCS

  • SS

  • SS_SideBySide

  • SS_Unix

  • Unified

  • Unix

Описание этих форматов см. в подразделе "Примечания" данного раздела.

Versionspec

Предоставляемое пользователем значение параметра /version. Дополнительные сведения о том, как Team Foundation выполняет анализ спецификаций версий для определения элементов, находящихся в области его действия, см. в разделе Синтаксис командной строки (управление версиями).

Shelvesetowner

Определяет владельца набора отложенных изменений по имени пользователя. Если значение параметра не указано, подразумевается текущий пользователь.

Shelvesetname

Указывает имя набора отложенных изменений. Можно создавать несколько наборов отложенных изменений с одинаковыми именами на сервере с запущенным Team Foundation Server до тех пор, пока все наборы принадлежат разным пользователям.

Shelveset_itemspec

Задает имя папки или файла в наборе отложенных изменений для сравнения с базовой версией набора отложенных изменений.

username

Предоставляет значение для параметра /login. Можно задать значение для имени пользователя как ДОМЕН\имя_пользователя или как имя_пользователя.

Параметр

Описание

/type

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

/version

Указывает версию файла или папки для сравнения. Если не указан параметр versionspec, Team Foundation по умолчанию использует версию рабочей области.

Вместо использования флага /version можно указать версии, поместив в конце каждого имени файла точку с запятой и спецификатор версии.

/format

Задает выходной формат, указанный с помощью аргумента format.

/ignorespace

Не выделяет различия в пробелах в сравниваемых файлах.

/ignoreeol

Игнорирует различия между знаками новой строки в двух файлах или версиях файла. /ignoreeol работает не так, как /ignoreSpace. /ignorespace обрабатывает восемь пробелов так же, как один. Однако если используется параметр /ignoreeol и файл A содержит два знака новой строки между неизменными частями текста, а файл Б — один, в результате отобразится отличие. Если оба файла имеют только одну новую строку, но файл А использует \r\n в качестве новой строки, а файл Б — \n, параметр /ignoreEOL проигнорирует данный момент как отличие.

/ignorecase

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

/recursive

Сравнивает различия между текущей папкой и всеми вложенными в нее папками.

/options

Задает строку параметра для средства, вызываемого различиями. Дополнительные сведения см. в разделах Сопоставление типа файла со средством сравнения и Сопоставление типа файла со средством слияния.

/shelveset

Указывает набор отложенных изменений для сравнения с версией сервера Team Foundation (подсистема контроля версий), которая лежит в основе набора отложенных изменений.

Этот параметр нельзя использовать вместе с аргументом itemspec. Для сравнения отдельных элементов набора отложенных изменений можно указать shelveset_itemspec.

/noprompt

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

/configure

Открывает диалоговое окно Настройка средств пользователя. Это средство также доступно из пользовательского интерфейса Visual Studio. Дополнительные сведения см. в разделе Сопоставление типа файла со средством сравнения.

/login

Задает имя пользователя и пароль для проверки подлинности пользователя с Team Foundation Server.

Заметки

Примечание

Чтобы выполнить данную команду, в командной строке введите 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

См. также

Ссылки

Команда merge

Команда Checkin

Команда Shelvesets

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

Управление типами файлов

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

Команды служебной программы командной строки "tf"

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