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.
Auswirkungen von „tf destroy“ auf die TFVC-Repositorycodesuche
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.