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


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

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

Visual Studio 2019 | Visual Studio 2022

Команда Team Foundation Version Control (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

Параметры

Аргументы

аргумент

описание

<itemspec>

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

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

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

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

<itemspec2>

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

<filetype>

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

<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.

Параметры

параметра

описание

/type

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

/version

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

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

/format

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

/ignorespace

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

/ignoreeol

Игнорирует различия между новыми символами строки в двух файлах или версиях файлов. /ignoreeol работает по-разному от ignorespace, которая обрабатывает восемь пространств идентичны одному. Однако если вы используете параметр /ignoreeol и File A имеет два новых символа строки между неизменяемыми областями текста, а файл B имеет один, результат отображается в виде разницы. Если оба файла имеют только одну новую строку, но File A использует \r\n в качестве новой строки и File 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 с версией, на которой основан header.h.

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

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

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

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

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

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

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

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

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

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

  • SS_SideBySide — это формат вывода по умолчанию для Visual SourceSafe по умолчанию.

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

  • 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 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