Команда "Разница"
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
формат предоставляет строки контекста для различий в файлах. Этот формат является производным от формата выходных данных на основе UNIXdiff -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
Связанные статьи
- команда слияния
- команды checkin
- командлетов
Полки - Управление типами файлов
- Сравнение папок и файлов