Befehl 'Unterschied'
Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019
Visual Studio 2019 | Visual Studio 2022-
Das Team Foundation Version Control (TFVC) difference
Befehl vergleicht, und wenn möglich, werden Unterschiede zwischen zwei Dateien, Dateien in zwei Ordnern oder ein Regalet und eine lokale oder serverdatei angezeigt.
Voraussetzungen
Um den Befehl difference
zu verwenden, verfügen Sie über die Berechtigung Lesen für alle angegebenen Elemente, die auf Allowfestgelegt sind. Weitere Informationen finden Sie unter Standard-TFVC-Berechtigungen.
Syntax
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
Parameter
Argumente
Argument
Beschreibung
<itemspec>
Erforderlich. Gibt das zu vergleichende Element an. Wenn keine Version oder kein Pfad angegeben ist, wird die aktuelle Arbeitsbereichsversion angenommen. Akzeptiert sowohl lokale als auch Azure DevOps-Serverpfade.
Weitere Informationen dazu, wie TFVC die itemspec
analysiert, um zu bestimmen, welche Elemente im Bereich enthalten sind, finden Sie unter Verwenden von Steuerelementbefehlen für die Team Foundation-Version.
Der Befehl difference
unterstützt keine Wildcardzeichen.
Dieser Parameter kann nicht mit der Option /shelveset
kombiniert werden.
<itemspec2>
Wahlfrei. Das Element, mit dem die itemspec
verglichen werden soll. Wenn Sie keine zweite itemspec
bereitstellen, wird die neueste Azure DevOps-Serverversion des Elements verwendet.
<filetype>
Stellt einen Wert für die Option /type
bereit. Sie können binary
oder text
und eine Codepagenummer oder den Anzeigenamen für eine Codepage angeben.
<format>
Wird mit der Option /format
verwendet, um ein Ausgabeformat eines der folgenden Typen anzugeben:
Visual
Brief
Context
RCS
SS
SS_SideBySide
SS_Unix
Unified
Unix
Diese Ausgabeformate werden im Abschnitt Anmerkungen erläutert.
<versionspec>
Der vom Benutzer bereitgestellte Wert für die option /version
. Weitere Informationen dazu, wie TFVC eine Versionsspezifikation analysiert, um zu bestimmen, welche Elemente in ihrem Bereich enthalten sind, finden Sie unter Verwenden von Steuerelementbefehlen für die Team Foundation-Version.
<shelvesetowner>
Identifiziert den Besitzer der Regale anhand des Benutzernamens. Wenn kein Wert für diesen Parameter angegeben wird, wird der aktuelle Benutzer angenommen.
<shelvesetname>
Gibt den Namen einer Regalet an. Sie können mehrere Regale mit demselben Namen auf dem Server erstellen, auf dem TFVC ausgeführt wird, solange ein anderer Benutzer jedes Regalet besitzt.
<shelveset_itemspec>
Gibt den Namen eines Ordners oder einer Datei im Regalet an, der mit der Basis-Regalsatzversion verglichen werden soll.
<username>
Stellt einen Wert für die Option /login
bereit. Sie können einen Benutzernamenwert entweder als DOMAIN\username
oder als username
angeben.
Optionen
Option
Beschreibung
/type
Setzt alle erkannten Codierungen außer Kraft und verwendet die angegebene Codierung, um die Dateien dem unterschiedlichen Modul darzustellen.
/version
Gibt die Version der zu vergleichenden Datei oder des Ordners an. Standardmäßig verwendet TFVC die Arbeitsbereichsversion, wenn Sie keine versionspec
bereitstellen.
Anstatt das /version
Flag zu verwenden, können Sie Versionen angeben, indem Sie am Ende jedes Dateinamens ein Semikolon und einen Versionsbezeichner anfügen.
/format
Gibt ein ausgabeformat an, das durch das Argument format
angegeben wird.
/ignorespace
Hebt keine Leerzeichenunterschiede zwischen den verglichenen Dateien hervor.
/ignoreeol
Ignoriert Unterschiede zwischen den neuen Zeilenzeichen in zwei Dateien oder Dateiversionen.
/ignoreeol
funktioniert anders als ignorespace
, wodurch acht Leerzeichen identisch mit einem behandelt werden. Wenn Sie jedoch die Option /ignoreeol
verwenden und Datei A zwei neue Zeilenzeichen zwischen unveränderten Textbereichen aufweist, und Datei B eins aufweist, wird das Ergebnis als Unterschied angezeigt. Wenn beide Dateien nur eine neue Zeile haben, aber Datei A\r\n
als neue Zeile verwendet und Datei B\n
verwendet, würde die option /ignoreeol
dies als Unterschied ignorieren.
/ignorecase
Hebt keine Unterschiede bei der Groß-/Kleinschreibung zwischen den verglichenen Dateien hervor.
/recursive
Vergleicht die Unterschiede zwischen dem aktuellen Ordner und allen unterordnern.
/options
Gibt eine Optionszeichenfolge für das Tool an, das von difference
aufgerufen werden soll. Weitere Informationen finden Sie unter Zuordnen eines Dateityps zu einem Unterschiedstool und Zuordnen eines Dateityps zu einem Seriendrucktool.
/shelveset
Gibt ein Regalet an, das mit der Azure DevOps-Serverversion verglichen werden soll, auf der das Regalet basiert.
Diese Option kann nicht mit einem itemspec
-Argument kombiniert werden. Um einzelne Regale zu vergleichen, können Sie eine shelveset_itemspec
bereitstellen.
/noprompt
Unterdrückt alle Dialogfelder, die während des Abschlusses dieses Vorgangs andernfalls angezeigt werden.
/configure
Ruft das Dialogfeld Konfigurieren von Benutzertools auf der Visual Studio-Benutzeroberfläche auf. Weitere Informationen finden Sie unter Zuordnen eines Dateityps zu einem Unterschiedstool.
/login
Gibt den Benutzernamen und das Kennwort an, um den Benutzer bei TFVC zu authentifizieren.
Bemerkungen
Anmerkung
Sie können tf diff
oder tf difference
in der Befehlszeile eingeben, um diesen Befehl auszuführen.
Sie können den Befehl difference
verwenden, um Unterschiede zwischen den Folgenden zu vergleichen und nach Möglichkeit anzuzeigen:
Zwei verschiedene Dateien oder zwei Versionen derselben Datei.
Mindestens eines der Elemente in einem Ordner.
Eins, einige oder alle Elemente in einem Regalet auf dem Azure DevOps-Server.
Sie können den Befehl "difference
" verwenden, um versionsgesteuerte und nicht versionsbezogene Dateien zu vergleichen.
TFVC kategorisiert alle Dateien nach Typ. Textdateien können zusammengefügt und miteinander verglichen werden, solange beide Dateien dieselbe Codierung aufweisen. Wenn Sie zwei Dateien vergleichen möchten, deren Codierungen nicht identisch sind, können Sie die Codierungseigenschaft für eine Datei vorübergehend maskieren oder außer Kraft setzen, indem Sie die Option /type
verwenden.
Binärdateien können verglichen werden, können aber nicht zusammengeführt werden. Wenn Sie eine oder mehrere Binärdateien an den Befehl difference
übergeben, gibt TFVC an, ob Unterschiede zwischen ihr und dem Element vorhanden sind, mit dem sie verglichen wird. Weitere Informationen dazu, wie TFVC zwischen Dateien unterschiedlicher Typen unterscheidet und behandelt, finden Sie unter Verwalten von Dateitypen.
Wenn Sie zwei Dateinamen angeben, werden die beiden Dateien verglichen. Anstatt das flag /version zu verwenden, können Sie Versionen angeben, indem Sie am Ende jedes Dateinamens ein Semikolon und einen Versionsbezeichner anfügen.
Wenn Sie nur einen itemspec
an den Unterschiedsbefehl übergeben:
Wenn Sie keine
versionspec
bereitstellen, wird Ihre aktuelle Arbeitsbereichsversion des Elements standardmäßig mit der Basisarbeitsbereichsversion verglichen. Beispielsweise vergleichttf difference header.h
die aktuelle Version von header.h mit der Version, auf der header.h basiert.Wenn Sie eine
versionspec
in Ihreitemspec
einschließen, z. B.tf difference header.h;LBeta1
, vergleicht TFVC diese Version mit Ihrer aktuellen Arbeitsbereichsversion auf dem Datenträger.Wenn Sie einen Bereich von Versionen wie
/version:C1~C4
angeben, werden die Versionen der Datei an den beiden Endpunkten des Bereichs verglichen.
Weitere Informationen zur Verwendung des Befehlszeilenprogramms tf
finden Sie unter Verwenden von Befehlen für die Versionskontrolle von Team Foundation.
Ausgabeformattypen
Der parameter format
, der mit der Option /format
verwendet wird, gibt viele verschiedene Ausgabeformate an. Die folgenden Ausgabetypen sind verfügbar:
Visual
Formattyp öffnet eine Anwendung für externe Unterschiede. Standardmäßig wird diffmerge.exe gestartet.Brief
Format druckt, ob sich die verglichenen Dateien unterscheiden.Context
Format stellt Kontextzeilen für die Unterschiede in den Dateien bereit. Dieses Format wird vom UNIX-basiertendiff -c
Ausgabeformat abgeleitet.RCS
Format ähnelt/format:unix
, es sei denn, Kontextzeilen werden nicht angegeben. Am Ende der Datei wird keine spezielle Hand für ein fehlendes Ende der Zeilenmarkierung bereitgestellt.SS
ist das Standardausgabeformat für Visual SourceSafe. Weitere Informationen finden Sie unter Diff (Befehlszeile).SS_SideBySide
ist das standardseitige Ausgabeformat für Visual SourceSafe.SS_Unix
ähnelt dem/format:unix
Ausgabeformat, aber/format:ss_unix
enthält Kontextzeilen und/format:unix
nicht.Unified
Format wird vom UNIX-basiertendiff -u
Ausgabeformat abgeleitet./format:context
wiederholt identische Kontextzeilen zwischen den Unterschiedszeichenfolgen, aber/format:unified
nicht.Unified
Format erzeugt eine neue Zeichenfolge für einheitliche Differenz (@@ ... @@
) nur, wenn der Abstand zur nächsten Differenzzeichenfolge größer als die Anzahl der Kontextzeilen ist.Unix
Ausgabetyp wird vom UNIX-basiertendiff
Befehlsausgabeformat abgeleitet.Das
Unix
Ausgabeformat wird wie folgt erstellt:<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
Beispiele
Im folgenden Beispiel werden die Unterschiede zwischen der lokalen Version von 314.cs und der Arbeitsbereichsversion von 314.cs angezeigt, bei der es sich um die Version der Datei handelt, die vom Azure DevOps-Server ausgecheckt wurde.
c:\projects>tf difference 314.cs
Im folgenden Beispiel werden alle Dateien angezeigt, die im src Ordner geändert wurden, jedoch keine Dateien angezeigt werden, die in Unterordnern von srcgeändert wurden.
c:\projects>tf difference src /format:visual
Im folgenden Beispiel werden die Unterschiede zwischen Changeet 3 und Changeset 8 von 1254.csangezeigt.
c:\projects>tf difference /version:C3~C8 1254.cs
Die folgenden Beispiele zeigen die Unterschiede zwischen der Version von 314.cs, die zur Bezeichnung release
gehören, und der Version, die zu Changeset 3200 gehört.
c:\projects>tf difference 314.cs;Lrelease 314.cs;C3200
-oder-
c:\projects>tf difference 314.cs;Lrelease~C3200
Im folgenden Beispiel wird der Unterschied zwischen den Versionen von e271.cs angezeigt, auf denen ein Benutzer mit dem Namen Pat in Regalen PeerCodeReview8
und der Basis-Regale-Version, auf der sie ihre Änderungen basieren. Die Ausgabe zeigt auch die Arten von Änderungen an, die gegen e271.cs
ausstehen, wenn der Benutzer eingestellt wurde.
c:\projects> tf difference /shelveset:PeerCodeReview8;Pat e271.cs
Im folgenden Beispiel werden die Unterschiede zwischen allen Dateien im PeerCodeReview2
-Regalset und der Basis-Regale-Version dieser Dateien angezeigt.
c:\projects> tf difference /shelveset:PeerCodeReview2