Verwenden von Befehlen der Team Foundation-Versionskontrolle

Mit Versionskontrollbefehlen können Sie nicht nur fast alle Aufgaben ausführen, die in Visual Studio möglich sind, sondern auch viele Aufgaben, die in Visual Studio nicht möglich sind. Das tf.exe-Tool ermöglicht die Ausführung von Versionskontrollbefehlen über eine Eingabeaufforderung oder innerhalb eines Skripts.

Was möchten Sie tun?

  • Einen Befehl ausführen

    • Einen Entwickler-Computer einrichten

    • Eine App entwickeln

    • Die Arbeit anhalten

    • Arbeit hinzufügen

    • Dateien verwalten und Probleme lösen

    • Risiken isolieren

  • Die Befehlssyntax verstehen

  • Von einem Befehl betroffene Elemente angeben

    • Betroffene Elemente mit einem itemspec-Argument angeben

    • Betroffene Elementversionen mit einem versionspec-Argument angeben

  • Befehlsfunktionsänderungsoptionen verwenden

    • Mit der /noprompt-Option Dateneingabeanforderungen unterdrücken und Ausgabedaten zum Eingabeaufforderungsfenster umleiten

    • Mit der /login-Option beim Ausführen eines Befehls Anmeldeinformationen angeben

    • Mit der /lock-Option eine Sperre anwenden oder entfernen

    • Abkürzungen für Optionen verwenden

  • Exitcodes verstehen

Einen Befehl ausführen

Wählen Sie zum Starten der Visual Studio-Eingabeaufforderung unter Windows Start die Optionen Microsoft Visual Studio 2012, Visual Studio-Tools aus, und wählen Sie dann eine der Verknüpfungen zur Eingabeaufforderung aus.

In den meisten Fällen wird der Versionskontrollbefehl im Kontext eines Verzeichnisses ausgeführt, das im Arbeitsbereich zugeordnet ist. $/SiteApp/Main/ ist beispielsweise c:\code\SiteApp\Main\ zugeordnet. So rufen Sie die neueste Version aller Elemente im Arbeitsbereich ab:

c:\code\SiteApp\Main\SolutionA>tf get

Hinweis

Einige der Themen werden momentan nicht neu veröffentlicht.Sie können jedoch die Visual Studio 2010-Version dieser Themen lesen.

Einrichten des Entwickler-Computers und Verwalten von Arbeitsbereichen

Der Arbeitsbereich ist eine lokale Kopie der Team-Codebase. Da es sich um eine lokale Kopie auf dem Entwickler-Computer handelt, können Sie den Code isoliert entwickeln und testen, bis Sie bereit sind, die Arbeit einzuchecken. Im Folgenden werden einige Befehle zum Verwalten des Arbeitsbereichs aufgeführt:

Siehe auch: Einrichten der Team Foundation-Versionskontrolle auf dem Entwicklercomputer, Erstellen und Verwenden von Arbeitsbereichen

Eine App entwickeln

Verwenden Sie diese Befehle, um mit dem Team eine App unter Versionskontrolle zu entwickeln:

Siehe auch: Entwickeln von Apps in der Team Foundation-Versionskontrolle

Die Arbeit anhalten

Aus unterschiedlichen Gründen ist es manchmal erforderlich, laufende Arbeiten vorübergehend ganz oder teilweise zurückzustellen. Verwenden Sie zum Anhalten und Fortsetzen der Arbeit sowie zum Verwalten von Shelvesets folgende Befehle:

Siehe auch: Unterbrechen der Arbeit und Verwalten von Shelvesets.

Arbeit hinzufügen

Im Folgenden wird gezeigt, wie Sie Code in die Team-Codebase einchecken:

  • Befehl Checkin
    Checkt ausstehende Änderungen für Dateien oder Ordner auf dem Server ein.

Siehe auch: Einchecken von Arbeit in die Team-Codebase

Dateien verwalten und Probleme lösen

Risiken isolieren

Verwenden Sie die folgenden Befehle, um Risiken mit Verzweigungen zu isolieren:

Siehe auch: Verwenden von Verzweigungen zum Isolieren von Risiken in der Team Foundation-Versionskontrolle.

Verwalten der Versionskontrolle

Verwenden Sie die folgenden Befehle, um das Versionskontrollsystem zu verwalten:

Siehe auch: Verwalten der Team Foundation-Versionskontrolle (Visual Studio 2010).

Hilfe zu Versionskontrollbefehlen

Verwenden Sie die folgenden Befehle, um weitere Informationen zu Versionskontrollbefehlen zu erhalten:

Die Befehlssyntax verstehen

Die Syntax eines jedes Befehls wird oben im jeweiligen Referenzthema angezeigt.

Erforderliche und optionale Argumente

Argumente, die nicht in eckigen Klammern eingeschlossen sind, sind erforderlich. [Brackets] stehen für optionale Argumente, die nicht zum Ausführen von Befehlen erforderlich sind. Einige optionale Argumente weisen jedoch Standardwerte auf, die für den Befehl angewendet werden, auch dann, wenn die Option nicht angegeben ist.

Exklusive Argumente

Sind Optionen durch eine Pipe (|) getrennt, können Sie eine der Optionen angeben.

Wörtliche und austauschbare Argumente

Fett formatierte Elemente sind Optionen, die wörtlich eingefügt werden. Kursiv formatierte Elemente sind Argumente, die durch tatsächliche Zeichen ersetzt werden müssen, um einen Befehl auszuführen.

Befehlsverknüpfungen und -aliase

Einige Befehle unterstützen Verknüpfungen. Beispielsweise können Sie den Löschbefehl entweder mit tf delete oder mit tf del aufrufen.

Beispiel

Nachfolgend sehen Sie ein Beispiel von dem Auscheckbefehl:

tf checkout [/lock:( none|checkin|checkout)] [/recursive] itemspec [/login: username,[ password]]

Kommen wir nun zu den Argumenten dieses Beispiels:

  • itemspec: Sie müssen dieses Argument durch eine itemspec ersetzen, die die Elemente angibt, die Sie auschecken.

  • /lock:(none|checkin|checkout): Die /lock-Option muss nicht angegeben werden. Wird diese nicht angeben, wird standardmäßig /lock:none angegeben. Andernfalls können Sie eine der Sperroptionen angeben.

  • Die folgenden Argumente sind optional. Werden diese nicht bereitgestellt, werden keine ihrer Effekte auf den Befehl angewendet:

    • /recursive: Wenn Sie mehrere Elemente in einem Ordner rekursiv auschecken möchten, muss diese Option wörtlich angegeben werden.

    • /login:Benutzername,Kennwort: Wenn Sie den Befehl unter einem anderen Benutzernamen ausführen möchten, müssen Sie die /login-Option wörtlich angeben, Benutzername durch den Namen des Benutzers ersetzen und bei Bedarf das Kennwort angeben.

Von einem Befehl betroffene Elemente angeben

Sie können itemspecs und versionspecs verwenden, um die von einem Befehl betroffenen Elemente anzugeben.

Betroffene Elemente mit einem itemspec-Argument angeben

Mit itemspec (Elementspezifikation) werden die von einem Befehl betroffenen Elemente angegeben. Elemente können entweder auf einem Clientcomputer oder auf dem Team Foundation Server angegeben werden. Sie können Platzhalterzeichen wie * und ? verwenden.

Client itemspec-Argumente

Ein Server itemspec-Argument gibt einen Pfad zu Elementen auf einem Clientcomputer an, wie etwa einem Ordner (z. B. c:\code\SiteApp\Main\SolutionA\), einer Datei (z. B. c:\code\SiteApp\Main\SolutionA\Project1\program.cs) oder mehreren Dateien (z. B. c:\code\SiteApp\Main\SolutionA\*.cs). Sie können auch UNC-Pfade angeben, z. B. \\myshare\code\SiteApp\Main.

Server itemspec-Argumente

Ein Server itemspec-Argument gibt einen Pfad zu Elementen auf dem Team Foundation Server an, wie etwa einem Ordner (z. B. $/SiteApp/Main/SolutionA) einer Datei (z. B. $/SiteApp/Main/SolutionA/Project1/program.cs) oder mehreren Dateien (z. B. $/SiteApp/Main/SolutionA/*.cs).

Server-itemspec-Argumente werden in der Regel zum Ausführen von Befehlen für Elemente außerhalb des Clientcomputers verwendet. Beispiel: Sie arbeiten mit einem Entwicklercomputer und müssen Revisionsverlaufsdaten zu Elementen in einer Teamprojektauflistung abrufen, in der Sie nicht arbeiten:

c:\>tf history /collection:http://fabrikam-3:8080/tfs/DefaultCollection
$/SiteApp/Main/SolutionA/Project1/* /recursive  
/noprompt 

Mehrere itemspec-Argumente

Für einige Befehle können mehrere itemspec-Argumente angegeben werden. Beispiel:

c:\code\SiteApp\Main\SolutionA\Project1\>tf checkout program1.cs program2.c

Checkt program.cs und program2.c aus.

Betroffene Elementversionen mit einem versionspec-Argument angeben

Mit versionspec (Versionsspezifikation) wird die Version der von einem Befehl betroffenen Elemente angegeben. versionspec kann folgendermaßen bereitgestellt werden:

  • Verwenden Sie die /version-Option. Beispiel: /version:C44.

  • Fügen Sie die versionspec mit einem Semikolon an eine itemspec an. Beispiel: program1.cs;C44.

Wenn Sie die Befehle Befehl für den Verlauf oder Difference Command verwenden, können Sie einen Bereich von Versionen angeben, indem Sie die Versionen mit einer Tilde (~) trennen. Beispiel:

c:\code\SiteApp\Main\SolutionA>tf history /noprompt * /recursive /v:D4/12/2012~D4/24/2012

Verwenden Sie zum Angeben von versionspec die folgende Syntax.

Typ

Syntax

Beschreibung

Changeset

[C]n

Gibt Elemente auf Grundlage einer Changesetnummer an. Wurde ein Element, das sich im Gültigkeitsbereich befindet, nicht im angegebenen Changeset geändert, wird die neueste Version des Elements übernommen, das vor dem angegebenen Changeset vorhanden war.

Tipp

Wenn Sie nur eine Zahl angeben, können Sie C auslassen.

Beispiele

c:\code\SiteApp\Main>tf get readme.txt /v:C8

– oder –

c:\code\SiteApp\Main>tf get readme.txt /v:8

– oder –

c:\code\SiteApp\Main>tf get readme.txt;8

Wurde "readme.txt" in Changeset 8 geändert, wird diese Dateiversion abgerufen. Andernfalls wird die neueste Version dieser Textdatei vor Version 8 abgerufen.

Bezeichnung

Llabel

Gibt Elemente an, auf die label angewendet wurde.

Beispiele

c:\code\SiteApp\Main>tf get readme.txt;LJulyHotFix

Ruft die "readme.txt"-Version mit der Bezeichnung JulyHotFix ab.

c:\code\SiteApp\Main>tf get /version:LLastKnownGood

Ruft die Version aller Elemente mit Bezeichnung ab (und löscht Elemente ohne Bezeichnung), die im Arbeitsbereich vorhanden waren, als das Changeset mit der Bezeichnung LastKnownGood erstellt wurde, z. B. als Teil eines automatisierten Buildprozesses.

Datum und Uhrzeit

Dyyyy-mm-ddTxx:xx

– oder –

Dmm/dd/yyyy

– oder –

Irgendein von .NET Framework unterstütztes Format.

– oder –

Irgendein auf dem lokalen Computer unterstütztes Datumsformat.

Gibt ein Changeset an, das zu einem angegebenen Datum und zu einer angegebenen Uhrzeit erstellt wurde.

Beispiele

c:\code\SiteApp\Main>tf get /version:D2004-03-22

Aktualisiert den Arbeitsbereich entsprechend der am 22.03.2004 um 00:00 Uhr vorhandenen Codebase.

c:\code\SiteApp\Main>tf get /version:D2004-03-22T09:00

Aktualisiert den Arbeitsbereich entsprechend der am 22.03.2004 um 09:00 Uhr vorhandenen Codebase.

Weitere Informationen zu den von .NET Framework unterstützten Datums- und Uhrzeitformaten finden Sie unter DateTime und unter Standard-Formatzeichenfolgen für Datum und Uhrzeit.

Arbeitsbereich (aktuell)

W

Gibt die Version im Arbeitsbereich an.

Arbeitsbereich (angegeben)

Wworkspacename; workspaceowner

Gibt die Version in einem angegebenen Arbeitsbereich an.

Beispiel: WResolveRIConflicts;PeterW

Tipp

T

Gibt die neueste Version an.

Befehlsfunktionsänderungsoptionen verwenden

Befehlsfunktionen können durch allgemeine Optionen geändert werden.

Mit der /noprompt-Option Dateneingabeanforderungen unterdrücken und Ausgabedaten zum Eingabeaufforderungsfenster umleiten

Verwenden Sie die /noprompt-Option, um Dateneingabeanforderungen zu unterdrücken und Ausgabedaten zum Eingabeaufforderungsfenster umzuleiten. Diese Option kann hilfreich sein, wenn Sie Versionskontrollbefehle in einem Skript verwenden müssen, weil der Befehl ohne Intervention durch einen Benutzer fortschreitet und die Daten dem Skript für Vorgänge, z. B. eine Analyse oder Erfassung, zur Verfügung stehen.

Wenn Sie diese Option verwenden, geschieht Folgendes:

  • Sämtliche Eingabeanforderungen werden unterdrückt:

    • Es werden keine Fragen im Eingabeaufforderungsfenster angezeigt. Verwenden Sie beispielsweise den Befehl zum Rückgängig machen mit dieser Option, werden Sie nicht dazu aufgefordert, das Rückgängigmachen der Änderungen zu bestätigen.

    • Es werden keine Fenster und Dialogfelder angezeigt. Diese Option kann z. B. mit dem Befehl Checkin verwendet werden. Anstatt das Dialogfeld Einchecken zum Bestätigen der Optionen (welche Elemente eingecheckt werden sollen oder welche Arbeitsaufgaben zuzuordnen sind) anzuzeigen, wird das Einchecken ohne Bestätigung fortgesetzt.

  • Leitet Ausgabedaten zur Eingabeaufforderung um. Diese Option kann z. B. mit dem Befehl für den Verlauf verwendet werden. Die Daten werden nicht im Fenster "Versionsgeschichte" angezeigt, sondern im Eingabeaufforderungsfenster.

Mit der /login-Option beim Ausführen eines Befehls Anmeldeinformationen angeben

Mit der /login-Option wird das Team Foundation Server-Benutzerkonto angegeben, unter dem ein Befehl ausgeführt wird. Diese Option kann hilfreich sein, wenn Sie auf dem Computer eines anderen Teammitglieds arbeiten.

So arbeitet beispielsweise Julia mit Peter auf seinem Entwickler-Computer. Mit dem Sperrbefehl entsperrt sie eine Datei, die sie zuvor gesperrt hatte:

c:\code\SiteApp\Main> tf lock /lock:none program.cs /login:JuliaI,JuliaPassword

Um zu vermeiden, dass ihr Kennwort in der Eingabeaufforderung angezeigt wird, kann sie den Befehl ohne Kennwort eingeben:

c:\code\SiteApp\Main> tf lock /lock:none program.cs /login:JuliaI

Nachdem sie diesen Befehl eingegeben hat, wird sie in einem Dialogfeld, das die Eingabe maskiert, zum Eingeben des Kennworts aufgefordert.

Mit der /lock-Option eine Sperre anwenden oder entfernen

Wichtig

Verwenden Sie als empfohlene Vorgehensweise die /lock-Option mit Vorsicht, und informieren Sie Ihre Teamkollegen darüber, warum Sie ein Element sperren und wann Sie planen, die Sperre zu entfernen.

Die /lock-Option ermöglicht das Anwenden oder Entfernen einer Sperre, während gleichzeitig ein anderer Befehl ausgeführt wird, wie z. B. Hinzufügen oder Bearbeiten.

/lock:(none|checkin|checkout)
  • None: Für das Element wird keine Sperre festgelegt. Wenn bereits eine Sperre vorhanden ist, wird sie aufgehoben.

  • Checkin oder Checkout: Wendet eine Sperre an. Siehe Verstehen von Sperrtypen.

Hinweis

In einigen Fällen kann ein Fehler beim Sperrvorgang auftreten:

  • Wenn andere Benutzer eines der angegebenen Elemente gesperrt haben, tritt beim Sperrvorgang ein Fehler auf.

  • Das System ignoriert diesen Wechsel, wenn es für dieses Element bereits eine ausstehende Änderung gibt.In diesem Fall müssen Sie Lock Command verwenden, um die Sperre bei einem Element zu ändern.

Abkürzungen für Optionen verwenden

Sie können die folgenden Optionen abkürzen.

Option

Optionsalias

/comment

-C

/computer

-M

/delete

-D

/force

-P

/format

-F

/help

-?, -H

/lock

-K

/login

-Y

/newname

-N

/noprompt

-I

/owner

-O

/recursive

-R

/server

-S

/slotmode

-X

/template

-T

/user

-U

/version

-V

/workspace

-W

Exitcodes verstehen

Versionskontrollbefehle geben die folgenden Exitcodes zurück:

Exitcode

Definition

0

Erfolgreich.

1

Ein partieller Erfolg bedeutet, dass nicht alle und möglicherweise kein Vorgang erfolgreich ausgeführt werden konnte.

2

Nicht erkannter Befehl.

100

Kein Vorgang konnte erfolgreich ausgeführt werden.

Beispiel:

c:\code\SiteApp\Main\SolutionA\Project1\>tf checkout program1.cs program2.c

Sollte eine der auszucheckenden Dateien nicht auf dem Server vorhanden sein, wird von dem Befehl 1 für einen partiellen Erfolg zurückgegeben.