Destroy-Befehl (Team Foundation-Versionskontrolle)

Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2019

Visual Studio 2019 | Visual Studio 2022

Verwenden Sie den tf destroy-Befehl, um Dateien, die der Versionskontrolle unterliegen, in der Team Foundation-Versionskontrolle (TFVC) zu zerstören oder endgültig zu löschen.

Hinweis

Das Löschen eines TFVC-Repositorys innerhalb von Azure Devops ist nach der Erstellung nicht zulässig. Der Befehl tf destroy zerstört oder löscht nur versionsgesteuerte Dateien oder Ordner, löscht jedoch nicht das TFVC-Repository. Es wird weiterhin in der Liste der Optionen angezeigt, wenn die Nachricht gelöscht ist.

Manchmal müssen Sie Versionskontrollsysteme bereinigen. Wenn einige Dateien beispielsweise mit einem Computervirus infiziert sind, müssen Sie sie dauerhaft aus der Versionskontrolle entfernen. Zerstören Sie keine Dateien, die noch benötigt werden. Die Zerstörungsaktion kann nicht rückgängig gemacht werden.

Bevor Sie tf destroy ohne die /keephistory-Option ausführen, löschen Sie zunächst die Dateien, die Sie zerstören möchten. Weitere Informationen finden Sie unter Löschen von Dateien und Ordnern aus der Versionskontrolle.

Nachdem Sie die Dateien gelöscht haben, können Sie das TFVC-Warehouse synchronisieren. Andernfalls wird das Warehouse nicht mit den zerstörten Elementen synchronisiert.

Voraussetzungen

Zum Verwenden des destroy-Befehls müssen Sie Mitglied der Sicherheitsgruppe Team Foundation-Administratoren sein. Weitere Informationen finden Sie unter TFVC-Standardberechtigungen.

Syntax

tf destroy [/keephistory] <itemspec1>[;<versionspec>][<itemspec2>...<itemspecN>] 
[/stopat:<versionspec>] [/preview] [/startcleanup] [/noprompt] [/silent] [/login:username,[password]] [/collection:TeamProjectCollectionUrl]]

Parameter

Argumente

Argument

Beschreibung

<itemspec1> [<itemspec2>...<itemspecN>]

Gibt den Serverpfad der zu zerstörenden Datei oder des Ordners an. Verwenden Sie mehrere itemspec-Werte, um mehrere Elemente zu löschen. Beispiel: tf destroy $/TeamProject1 $/teamProject2 $/TeamProject3.

Lokale Pfade werden nicht unterstützt.

<versionspec>

Stellt eine Version wie C58 für die Optionen /keephistory oder /stopat bereit. Die zulässigen Werte sind date, tip oder ein bestimmtes Changeset. 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.

<username>

Stellt einen Wert für die /login-Option bereit. Sie können einen username-Wert als DOMAIN\username oder username angeben.

TeamProjectCollectionUrl

Die URL der Projektsammlung, die Dateien enthält, die Sie zerstören möchten, z. B. http://myserver:8080/tfs/DefaultCollection.

Tastatur

Option

Beschreibung

/keephistory

Optional. Gibt an, dass der Verlauf einer Datei beibehalten wird, auch wenn ihr Inhalt zerstört wird. Diese Option kann nicht mit der Option /preview angegeben werden.

/stopat

Optional. Kann nur verwendet werden, wenn /keephistory ebenfalls angegeben wird.

Gibt die Dateiversion für die Datei und die darauf folgenden Dateien an, für die der Verlauf beibehalten wird.

Die Standardversion für /stopat ist tip (T) für die neueste eingecheckte Version eines Elements.

Sie können keine Bezeichnungs- oder Arbeitsbereichswerte vom Typ versionspec verwenden, um ein Element für die /stopat-Option anzugeben.

/preview

Zeigt die Dateien an, die im Eingabeaufforderungsfenster zerstört würden. Wenn tf destroy im Vorschaumodus ausgeführt wird, werden die Dateien nicht tatsächlich zerstört.

Hinweis

Der Text im Eingabeaufforderungsfenster zeigt das Wort Destroyed (Zerstört) mit jeder Datei an, die zerstört würde. Die Datei wird jedoch nicht tatsächlich zerstört, wenn die Option /preview verwendet wird.

/startcleanup

Erzwingt, dass der TFVC-Metadatenbereinigungsprozess unmittelbar nach Abschluss des Löschvorgangs gestartet wird. Wenn der Benutzer /startcleanup nicht angibt, tritt der Bereinigungsprozess der zerstörten Metadaten auf, wenn die Datenbankwartung alle Dateien bereinigt, auf die von Azure DevOps Server nicht mehr verwiesen wird. Standardmäßig ist die Ausführung der Bereinigung alle fünf Tage geplant. Sieben Tage nach der Bereinigung der TFVC-Metadaten werden die Inhalte durch einen weiteren Bereinigungsprozess gelöscht. Standardmäßig wird dieser Inhaltsbereinigungsprozess ein Mal täglich ausgeführt.

/noprompt oder /i

Gibt an, dass die Zerstörung von Dateien nicht interaktiv ist. /i ist ein Alias für /noprompt.

/silent

Gibt an, dass beim Zerstören von Dateien oder Ordnern die Ausgabe nicht in das Eingabeaufforderungsfenster geschrieben wird.

/login

Gibt den Benutzernamen und das Kennwort an, um den Benutzer bei TFVC zu authentifizieren.

/collection

Gibt die Projektsammlung an.

Bemerkungen

Wenn Sie tf destroy verwenden, um Dateien mit Versionsverwaltung zu zerstören, empfängt die Anwendungsebene von TFVC die Zerstörungsanforderung und überprüft, ob Sie Mitglied der Sicherheitsgruppe Team Foundation-Administratoren sind. Wenn Sie kein Mitglied sind, zeigt das System ein Fehlermeldungs-Dialogfeld an, das Sie informiert, dass Sie nicht über ausreichende Berechtigungen zum Ausführen des Vorgangs verfügen.

Nachdem das System Ihre Berechtigungen überprüft hat, führt es den destroy-Befehl aus. Mit diesem Befehl werden alle Dateiverweise, Shelvesets und ausstehenden Änderungen gelöscht. Die tatsächliche Zerstörung von Dateien, die ein dauerhafter Löschvorgang ist, geschieht das nächste Mal, wenn der Inhalt, auf den nicht mehr von Azure DevOps Server verwiesen wird, bereinigt wird. Sie können auch die /startcleanup-Option angeben, um Dateien sofort nach der Ausführung von tf destroy zu bereinigen.

Wenn Sie tf destroy ausführen, ohne /i und /preview anzugeben, zeigt das System für jeden filespec-Wert eine Konsoleneingabeaufforderung Ja oder Nein an. Andernfalls können Sie Ja für Alle angeben.

  • Wenn Sie /keephistory nicht angeben, erfolgt eine Eingabeaufforderung durch interaktiven Text, der vor ausstehenden Änderungen warnt, falls vorhanden. Der interaktive Text verweist auf /preview, wenn Sie weitere Informationen zu den Änderungen abrufen möchten.

  • Wenn Sie /keephistory angeben, erhalten Sie ebenfalls eine Eingabeaufforderung mit dem Text Ja, Nein oder Ja für Alle . Wenn Sie Ja oder Ja für Alle auswählen, wird der Zerstörungsprozess gestartet, und die Serverpfade zu den zerstörten Elementen werden im Eingabeaufforderungsfenster angezeigt.

Destroyed: <serverItem1>
Destroyed: <serverItem2>
Destroyed: ...

Wenn Sie den versionspec-Wert als tip angegeben haben, enthalten die im Eingabeaufforderungsfenster angezeigten Serverpfade Lösch-IDs. Destroyed: $/Test1/MyProject;X123 kann z. B. im Eingabeaufforderungsfenster angezeigt werden.

Wenn Sie die /preview-Option verwenden, werden die Dateien nicht zerstört, aber der Befehlszeilentext zeigt die Dateien an, die zerstört werden würden. Wenn Sie an der Befehlszeile tf destroy /preview $/Test1/MyProject/MyProject/Program.cs beispielsweise eingeben, wird im Befehlsfenster der folgende Text angezeigt:

Destroyed: $/Test1/MyProject/MyProject/Program.cs

Die Datei wird jedoch nicht tatsächlich zerstört, weil Sie die /preview-Option verwendet haben.

Weitere Informationen zur Verwendung des Befehlszeilenhilfsprogramms tf finden Sie unter Verwenden von Befehlen der Team Foundation-Versionskontrolle.

Auswirkungen von /keephistory auf andere Versionskontrollvorgänge

Wenn Sie die /keephistory-Option angeben, um den Verlauf zerstörter Dateien beizubehalten, werden die Dateien durch die folgenden TFVC-Vorgänge als zerstört behandelt:

  • Ändern des Inhalts. Wenn Sie versuchen, den Inhalt einer zerstörten Datei zu ändern, z. B. zu bearbeiten oder zu branchen, gibt das System eine Fehlermeldung aus, die besagt, dass der Inhalt zerstört wurde.

  • Branchen, Mergen oder Unshelven. Wenn Sie versuchen, zerstörte Elemente zu branchen, zu mergen oder zu unshelven, gibt das System eine Fehlermeldung aus, die besagt, dass der Inhalt der Elemente zerstört wurde.

Zerstören zuvor gelöschter Elemente

Wenn ein Element bereits gelöscht wurde, wird eine Lösch-ID an das Element angefügt, die zu einer Änderung des Dateinamens führt.

Die Codesuche verarbeitet keine tf destroy-Benachrichtigungen, sodass die Verwendung von tf destroy für TFVC-Repositorys nicht automatisch Dateien aus dem Suchindex löscht. Daher werden diese Dateien in den Codesuchergebnissen angezeigt. Um diese Geisterdateiszenarien zu vermeiden, löschen Sie Dateien vor dem tf destroy-Vorgang.

Beispiele

Im folgenden Beispiel wird die Datei a.cs endgültig gelöscht.

tf destroy $/proj/pi/a.cs

Das folgende Beispiel löscht einen Ordner, aFolder:

tf delete $/MyTeamProject/aFolder

Um das gelöschte Element aFolder zu zerstören, geben Sie an der Befehlszeile Folgendes ein:

tf destroy $/MyTeamProject/aFolder;x123

Dabei ist x123 die Lösch-ID.