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


Команда "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 для указания выходного формата одного из следующих типов.

  • Visual

  • Brief

  • Context

  • RCS

  • SS

  • SS_SideBySide

  • SS_Unix

  • Unified

  • Unix

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

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. Дополнительные сведения см. в разделе Практическое руководство. Сопоставление типа файла со средством сравнения.

Заметки

6fd7dc73.alert_note(ru-ru,VS.90).gifПримечание.

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

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