Difference-Befehl
Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2019
Visual Studio 2019 | Visual Studio 2022
Mit dem Befehl difference
der Team Foundation-Versionskontrolle (TFVC) werden Unterschiede zwischen zwei Dateien, Dateien in zwei Ordnern oder einem Shelveset und einer lokalen oder einer Serverdatei verglichen und nach Möglichkeit angezeigt.
Voraussetzungen
Zum Verwenden des Befehls difference
muss die Berechtigung Lesen für alle angegebenen Elemente auf Zulassen festgelegt sein. Weitere Informationen finden Sie unter TFVC-Standardberechtigungen.
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 weder eine Version noch ein Pfad angegeben wird, wird von der aktuellen Arbeitsbereichsversion ausgegangen. Akzeptiert sowohl lokale als auch Azure DevOps-Serverpfade.
Weitere Informationen dazu, wie TFVC die itemspec
analysiert, um zu bestimmen, welche Elemente im Gültigkeitsbereich liegen, finden Sie unter Verwenden von Befehlen der Team Foundation-Versionskontrolle.
Der Befehl difference
unterstützt keine Platzhalterzeichen.
Dieser Parameter kann nicht mit der Option /shelveset
kombiniert werden.
<itemspec2>
Optional. Das Element, mit dem itemspec
verglichen werden soll. Wenn Sie keine zweite itemspec
angeben, wird die neueste Azure DevOps-Serverversion des Elements verwendet.
<filetype>
Gibt einen Wert für die /type
-Option an. Sie können binary
oder text
und die Nummer einer Codepage oder den Anzeigenamen für eine Codepage angeben.
<format>
Wird mit der /format
-Option 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 Hinweise erläutert.
<versionspec>
Der vom Benutzer angegebene Wert für die /version
-Option. Weitere Informationen dazu, wie TFVC eine Versionsspezifikation analysiert, um zu bestimmen, welche Elemente in ihrem Gültigkeitsbereich liegen, finden Sie unter Verwenden von Befehlen der Team Foundation-Versionskontrolle.
<shelvesetowner>
Gibt den Besitzer des Shelvesets anhand des Benutzernamens an. Wenn kein Wert für diesen Parameter angegeben wird, wird der aktuelle Benutzer zugrunde gelegt.
<shelvesetname>
Gibt den Namen eines Shelvesets an. Sie können mehrere Shelvesets mit demselben Namen auf dem Server erstellen, auf dem TFVC ausgeführt wird, solange jedes Shelveset sich im Besitz eines anderen Benutzers befindet.
<shelveset_itemspec>
Gibt den Namen eines Ordners oder einer Datei im Shelveset für den Vergleich mit der Basisversion des Shelvesets an.
<username>
Gibt einen Wert für die /login
-Option an. Sie können einen Benutzernamen entweder als DOMAIN\username
oder als username
angeben.
Tastatur
Option
Beschreibung
/type
Setzt alle erkannten Codierungen außer Kraft und verwendet die angegebene Codierung, um die Dateien an die Differenz-Engine zu übergeben.
/version
Gibt die Version der zu vergleichenden Datei oder des Ordners an. Standardmäßig verwendet TFVC die Arbeitsbereichsversion, wenn Sie keine versionspec
angeben.
Anstatt das /version
-Flag zu verwenden, können Sie Versionen angeben, indem Sie ein Semikolon und einen Versionsbezeichner an das Ende jedes Dateinamens anfügen.
/format
Gibt ein durch das format
-Argument angegebenes Ausgabeformat an.
/ignorespace
Hebt keine Unterschiede beim Leerraum zwischen den verglichenen Dateien hervor.
/ignoreeol
Ignoriert Unterschiede zwischen den Zeichen für eine neue Zeile in zwei Dateien oder Dateiversionen. /ignoreeol
funktioniert anders als ignorespace
, bei dem acht Leerzeichen als identisch mit einem behandelt werden. Wenn Sie jedoch die Option /ignoreeol
verwenden und Datei A zwei Zeichen für eine neue Zeile zwischen unveränderten Textbereichen aufweist während Datei B nur eins hat, wird das Ergebnis als Unterschied angezeigt. Wenn beide Dateien nur eine neue Zeile haben, Datei A jedoch \r\n
als neue Zeile, Datei B aber \n
verwendet , würde dies von der Option /ignoreeol
als Unterschied ignoriert.
/ignorecase
Es werden keine Unterschiede in der Groß-/Kleinschreibung zwischen den verglichenen Dateien hervorgehoben.
/recursive
Vergleicht die Unterschiede zwischen dem aktuellen Ordner und allen seinen 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 Differenztool und Zuordnen eines Dateityps zu einem Mergetool.
/shelveset
Gibt ein Shelveset an, das mit der Azure DevOps-Serverversion verglichen werden soll, auf der das Shelveset basiert.
Diese Option kann nicht mit dem Argument itemspec
kombiniert werden. Zum Vergleichen einzelner Shelvesetelemente können Sie eine shelveset_itemspec
angeben.
/noprompt
Unterdrückt alle Dialogfelder, die andernfalls während des Ausführung dieses Vorgangs angezeigt würden.
/configure
Ruft das Dialogfeld Benutzertools konfigurieren über die Visual Studio-Benutzeroberfläche auf. Weitere Informationen finden Sie unter Zuordnen eines Dateityps zu einem Differenztool.
/login
Gibt den Benutzernamen und das Kennwort an, um den Benutzer bei TFVC zu authentifizieren.
Bemerkungen
Hinweis
Zum Ausführen dieses Befehls können Sie an der Befehlszeile tf diff
oder tf difference
angeben.
Sie können den difference
-Befehl für den Vergleich von Unterschieden und nach Möglichkeit deren Anzeige zwischen folgenden Elementen verwenden:
Zwei verschiedenen Dateien oder zwei Versionen derselben Datei
Einem oder mehreren Element(en) in einem Ordner.
Einem, mehreren oder allen Element(en) in einem Shelveset auf dem Azure DevOps-Server.
Sie können den difference
-Befehl für den Vergleich sowohl von Dateien mit als auch ohne Versionsverwaltung zu verwenden.
TFVC kategorisiert alle Dateien nach Typ. Textdateien können zusammengeführt und verglichen werden, nebeneinander und Zeile für Zeile, solange beide Dateien die gleiche Codierung aufweisen. Wenn Sie zwei Dateien vergleichen möchten, deren Codierungen nicht identisch sind, können Sie die Codierungseigenschaft für eine Datei mithilfe der Option /type
vorübergehend maskieren oder außer Kraft setzen.
Binärdateien können verglichen, aber nicht zusammengeführt werden. Wenn Sie dem difference
-Befehl eine oder mehrere Binärdateien übergeben, gibt TFVC an, ob Unterschiede zwischen ihnen und dem Vergleichselement bestehen. Weitere Informationen dazu, wie TFVC zwischen Dateien unterscheidet und Dateien verschiedener Typen behandelt, finden Sie unter Verwalten von Dateitypen.
Wenn Sie zwei Dateinamen angeben, werden die beiden Dateien verglichen. Anstatt das /version-Flag zu verwenden, können Sie Versionen angeben, indem Sie ein Semikolon und einen Versionsbezeichner an das Ende jedes Dateinamens anfügen.
Wenn Sie dem Differenzbefehl nur eine itemspec
übergeben:
Wenn Sie keine
versionspec
angeben, 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, wie etwatf 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 Befehlszeilenhilfsprogramms tf
finden Sie unter Verwenden von Befehlen der Team Foundation-Versionskontrolle.
Ausgabeformattypen
Der format
-Parameter gibt in Verbindung mit der Option /format
viele verschiedene Ausgabeformate an. Die folgenden Ausgabetypen sind verfügbar:
Der Formattyp
Visual
öffnet eine externe Differenzanwendung. Standardmäßig wird diffmerge.exe gestartet.Das
Brief
-Format gibt an, ob sich die verglichenen Dateien unterscheiden.Das
Context
-Format stellt Kontextzeilen für die Unterschiede in den Dateien zur Verfügung. Dieses Format ist vom UNIX-basierten Ausgabeformatdiff -c
abgeleitet.Das Format
RCS
ist ähnlich wie/format:unix
, mit dem Unterschied, dass keine Kontextzeilen angegeben werden. Es gibt keine besondere Behandlung für den Fall einer fehlenden Zeilenendemarkierung am Dateiende.SS
ist das Standardformat für die Abweichungsausgabe für Visual SourceSafe. Weitere Informationen finden Sie unter Diff (Befehlszeile).SS_SideBySide
ist das standardmäßige parallele Ausgabeformat für Visual SourceSafe.SS_Unix
ist dem Ausgabeformat/format:unix
ähnlich, jedoch enthält/format:ss_unix
Kontextzeilen,/format:unix
dagegen nicht.Das Format
Unified
ist vom UNIX-basierten Ausgabeformatdiff -u
abgeleitet./format:context
wiederholt identische Kontextzeilen zwischen den Differenzzeichenfolgen,/format:unified
jedoch nicht.Das Format
Unified
erzeugt nur dann eine neue einheitliche Differenzzeichenfolgenzeile (@@ ... @@
), wenn der Abstand zur nächsten Differenzzeichenfolge größer als die Anzahl der Kontextzeilen ist.Der Ausgabetyp
Unix
ist vom UNIX-basierten Ausgabeformat desdiff
-Befehls abgeleitet.Das
Unix
-Ausgabeformat ist folgendermaßen aufgebaut:<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 geänderten Dateien im Ordner src angezeigt, aber keine geänderten Dateien in Unterordnern von src.
c:\projects>tf difference src /format:visual
Im folgenden Beispiel werden die Unterschiede zwischen Changeset 3 und Changeset 8 von 1254.cs angezeigt.
c:\projects>tf difference /version:C3~C8 1254.cs
Die folgenden Beispiele zeigen die Unterschiede zwischen der Version von 314.cs an, die zur Bezeichnung release
gehört, 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, die ein Benutzer namens Pat im Shelveset PeerCodeReview8
gespeichert hat, und der Basisversion des Shelvesets, auf der seine Änderungen basieren. Die Ausgabe zeigt außerdem die Typen von Änderungen an, die in Vergleich zu e271.cs
beim Shelven des Benutzers ausgestanden haben.
c:\projects> tf difference /shelveset:PeerCodeReview8;Pat e271.cs
Im folgenden Beispiel werden die Unterschiede zwischen allen Dateien im Shelveset PeerCodeReview2
und der Basisversion dieser Dateien angezeigt.
c:\projects> tf difference /shelveset:PeerCodeReview2