Команда "Разница"

Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019

Visual Studio 2019 | Visual Studio 2022

Команда система управления версиями Team Foundation (TFVC) difference сравнивает и по возможности отображает различия между двумя файлами, файлами в двух папках или набором полок и локальным или серверным файлом.

Необходимые компоненты

Чтобы использовать difference команду, необходимо иметь разрешение на чтение для всех указанных элементов, для которых задано значение Allow. Дополнительные сведения см. в разделе "Разрешения TFVC по умолчанию".

Синтаксис

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

Параметры

Аргументы

Argument

Description

<itemspec>

Обязательное. Указывает элемент для сравнения. Если версия или путь не указана, предполагается текущая версия рабочей области. Принимает как локальные, так и пути к серверу Azure DevOps.

Дополнительные сведения о том, как TFVC анализирует itemspec элементы, находящиеся в область, см. в разделе "Использование команд управления версиями Team Foundation".

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

Этот параметр нельзя объединить с параметром /shelveset .

<itemspec2>

Необязательно. Элемент, с которым itemspec нужно сравнить. Если вы не предоставляете секунду itemspec, используется последняя версия сервера Azure DevOps элемента.

<filetype>

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

<format>

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

  • Visual
  • Brief
  • Context
  • RCS
  • SS
  • SS_SideBySide
  • SS_Unix
  • Unified
  • Unix

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

<versionspec>

Указанное пользователем /version значение параметра. Дополнительные сведения о том, как TFVC анализирует спецификацию версии, чтобы определить, какие элементы находятся в область, см. в разделе "Использование команд управления версиями Team Foundation".

<shelvesetowner>

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

<shelvesetname>

Задает имя набора полок. Вы можете создать несколько наборов полков с тем же именем на сервере, на котором выполняется TFVC, если другой пользователь владеет каждым набором полкей.

<shelveset_itemspec>

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

<username>

Предоставляет значение /login для параметра. Можно указать значение имени пользователя как DOMAIN\username или username.

Параметры

Параметр

Description

/type

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

/version

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

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

/format

Указывает выходной формат, указанный аргументом format .

/ignorespace

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

/ignoreeol

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

/ignorecase

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

/recursive

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

/options

Указывает строку параметра для вызываемого средством difference. Дополнительные сведения см. в статье "Связывание типа файла с средством разности" и связывание типа файла с инструментом слияния.

/shelveset

Задает набор полок для сравнения с версией сервера Azure DevOps, на которой основан набор полок.

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

/noprompt

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

/configure

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

/login

Указывает имя пользователя и пароль для проверки подлинности пользователя с помощью TFVC.

Замечания

Примечание.

Для выполнения этой команды можно ввести tf diff или tf difference в командной строке.

Вы можете использовать difference команду для сравнения и, если это возможно, различий между:

  • Два разных файла или две версии одного и того же файла.

  • Один или несколько элементов в папке.

  • Один, некоторые или все элементы в наборе полок на сервере Azure DevOps.

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

TFVC классифицирует все файлы по типу. Текстовые файлы могут быть объединены и сравниваются параллельно и по строке, если оба файла имеют одинаковую кодировку. Если вы хотите сравнить два файла, кодировки которых не совпадают, можно временно маскировать или переопределить свойство кодирования для файла с помощью /type параметра.

Двоичные файлы можно сравнить, но не удается объединить. При передаче одного или нескольких двоичных файлов команде difference TFVC указывает, существуют ли различия между ним и элементом, с которым сравнивается. Дополнительные сведения о том, как TFVC отличается от файлов разных типов, см. в разделе "Управление типами файлов".

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

Если вы передаете только одну itemspec команду разности:

  • Если вы не предоставляете versionspec, текущая версия рабочей области элемента по умолчанию сравнивается с базовой версией рабочей области. Например, tf difference header.h сравнивает текущую версию header.h с версией, на которой основан заголовок.h.

  • Если вы включаете versionspec в свою itemspecверсию, например tf difference header.h;LBeta1, TFVC сравнивает эту версию с текущей версией рабочей области на диске.

  • Если указать диапазон версий, таких как /version:C1~C4, сравниваются версии файла на двух конечных точках диапазона.

Дополнительные сведения об использовании служебной tf программы командной строки см. в разделе "Использование команд управления версиями Team Foundation".

Типы форматов выходных данных

Параметр format , используемый с параметром /format , задает множество различных форматов выходных данных. Доступны следующие типы выходных данных:

  • Visual Тип формата открывает приложение внешней разницы. По умолчанию diffmerge.exe запускается.

  • Brief формат показывает, отличаются ли сравниваемые файлы.

  • Context Формат предоставляет строки контекста для различий в файлах. Этот формат является производным от формата выходных данных на основе diff -c UNIX.

  • RCS Формат аналогичен /format:unix, кроме строк контекста, не предоставляется. В конце файла не предоставляется специальная передача отсутствующих маркеров строки.

  • SS— это формат выходных данных по умолчанию для Visual Source Сейф. Дополнительные сведения см. в разделе Diff (командная строка).

  • SS_SideBySide— это формат выходных данных по умолчанию для Visual Source Сейф.

  • SS_Unixаналогичен формату вывода, но /format:ss_unix включает в себя строки контекста /format:unix и /format:unix не имеют значения.

  • Unified Формат является производным от формата выходных данных на основе diff -u UNIX. /format:context повторяет идентичные строки контекста между строками разницы, но /format:unified не повторяется.

    Unified Формат создает новую строку единой разницы (@@ ... @@) только в том случае, если расстояние к следующей строке различия превышает число строк контекста.

  • Unix тип выходных данных на основе 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 separated by commas indicate a line range.
    # signs before the character indicate line numbers in the first file.
    # signs after the character indicate 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, которая является версией файла, проверка из сервера Azure DevOps.

c:\projects>tf difference 314.cs

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

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, на которые пользователь с именем Pat отложил в наборе полков и базовую версию наборов полокPeerCodeReview8, на основе их изменений. В выходных данных также отображаются типы изменений, ожидающих изменения e271.cs при отложении пользователем.

c:\projects> tf difference /shelveset:PeerCodeReview8;Pat e271.cs

В следующем примере отображаются различия между всеми файлами в наборе PeerCodeReview2 полок и базовой версией наборов полок этих файлов.

c:\projects> tf difference /shelveset:PeerCodeReview2