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 vergleicht tf difference header.h die aktuelle Version von header.h mit der Version, auf der header.h basiert.

  • Wenn Sie eine versionspec in Ihre itemspec einschließen, wie etwa 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 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 Ausgabeformat diff -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 Ausgabeformat diff -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 des diff-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