Команда "Разница"
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