Commande Destroy (Team Foundation Version Control)

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

Visual Studio 2019 | Visual Studio 2022

Utilisez la commande tf destroy pour détruire ou supprimer définitivement des fichiers à version contrôlée de Team Foundation Version Control (TFVC).

Remarque

La suppression d’un référentiel TFVC à l’intérieur d’Azure Devops n’est pas autorisée une fois qu’elle a été créée. La commande tf destroy détruit ou supprime définitivement les fichiers ou dossiers à version contrôlée, mais ne supprime pas le référentiel TFVC. Il apparaît toujours dans la liste des options avec le message supprimé.

Parfois, vous devez nettoyer les systèmes de gestion de version. Par exemple, si certains fichiers sont infectés par un virus informatique, vous devez les supprimer définitivement de la gestion de version. Ne détruisez pas les fichiers qui sont encore nécessaires. L’action de destruction est irréversible.

Avant d’exécuter tf destroy sans l’option /keephistory, supprimez d’abord les fichiers que vous souhaitez détruire. Pour plus d’informations, consultez Supprimer des fichiers et des dossiers de la gestion de version.

Après avoir supprimé les fichiers, vous pouvez synchroniser l’entrepôt TFVC. Sinon, l’entrepôt ne sera pas synchronisé avec les éléments détruits.

Prérequis

Pour utiliser la commande destroy, vous devez être membre du groupe de sécurité Team Foundation Administrators. Pour plus d’informations, consultez Autorisations TFVC par défaut.

Syntaxe

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

Paramètres

Arguments

Argument

Description

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

Spécifie le chemin d’accès serveur du fichier ou dossier à détruire. Utilisez plusieurs valeurs itemspec pour supprimer plusieurs éléments. Par exemple : tf destroy $/TeamProject1 $/teamProject2 $/TeamProject3.

Les chemins d’accès locaux ne sont pas pris en charge.

<versionspec>

Fournit une version telle que C58 pour les options /keephistory ou /stopat. Les valeurs autorisées sont date, tip ou un ensemble de modifications spécifique. Pour plus d’informations sur la façon dont TFVC analyse les spécifications d’une version pour déterminer quels éléments se trouvent à sa portée, consultez Utiliser les commandes de gestion de version de Team Foundation.

<username>

Fournit une valeur à l’option /login. Vous pouvez spécifier cette valeur username en tant que DOMAIN\username ou username.

TeamProjectCollectionUrl

L’URL de la collection de projets qui contient les fichiers que vous souhaitez détruire, par exemple http://myserver:8080/tfs/DefaultCollection.

Options

Option

Description

/keephistory

Optionnel. Spécifie que l’historique d’un fichier est conservé même si son contenu est détruit. Cette option ne peut pas être combinée avec l’option /preview.

/stopat

facultatif. Ne peut être utilisée que si /keephistory est également spécifiée.

Spécifie la version du fichier et les fichiers suivants pour lesquels l’historique est conservé.

La version par défaut pour /stopat est tip (T) pour la dernière version archivée d’un élément.

Vous ne pouvez pas utiliser les valeurs d’étiquette ou d’espace de travail versionspec pour spécifier un élément pour l’option /stopat.

/preview

Affiche les fichiers qui seraient détruits dans la fenêtre d’invite de commandes. Lors tf destroy s’exécute en mode préversion, les fichiers ne sont pas réellement détruits.

Notes

Le texte de la fenêtre d’invite de commandes affiche le mot Détruit avec chaque fichier qui serait détruit. Toutefois, le fichier n’est pas vraiment détruit lorsque l’option /preview est utilisée.

/startcleanup

Force le processus de nettoyage des métadonnées TFVC à démarrer immédiatement après la fin de la suppression. Si l’utilisateur ne spécifie pas /startcleanup, le processus de nettoyage des métadonnées détruites se produit lorsque la maintenance de la base de données nettoie tous les fichiers qui ne sont plus référencés par Azure DevOps Server. Par défaut, le nettoyage est planifié pour s’exécuter tous les cinq jours. Sept jours après le nettoyage des métadonnées TFVC, le contenu est supprimé par un autre processus de nettoyage. Par défaut, ce processus de nettoyage de contenu s’exécute une fois par jour.

/noprompt ou /i

Spécifie que la destruction des fichiers n’est pas interactive. /i est un alias pour /noprompt.

/silent

Spécifie que, lorsque vous détruisez des fichiers ou des dossiers, la sortie n’est pas écrite dans la fenêtre d’invite de commandes.

/login

Spécifie le nom d’utilisateur et le mot de passe pour authentifier l’utilisateur auprès de TFVC.

/collection

Spécifie la collection de projets.

Notes

Lorsque vous utilisez tf destroy pour détruire des fichiers de gestion de version, la couche Application de TFVC reçoit la requête de destruction et vérifie si vous êtes membre du groupe de sécurité Team Foundation Administrators . Si vous n’êtes pas membre, le système affiche une boîte de dialogue avec un message d’erreur qui vous indique que vous ne disposez pas des autorisations suffisantes pour effectuer l’opération.

Une fois que le système a vérifié vos autorisations, il exécute la commande de destruction. Cette commande supprime toutes les références de fichiers, les jeux de réservations et les modifications en attente. La destruction réelle des fichiers, qui est une suppression permanente, se produira lors du prochain nettoyage du contenu qui n’est plus référencé par Azure DevOps Server. Vous pouvez également spécifier l’option /startcleanup permettant de nettoyer les fichiers immédiatement après l’exécution de tf destroy.

Si vous exécutez tf destroy sans spécifier /i et /preview, le système affiche une invite de console Oui ou Non pour chaque valeur filespec. Sinon, vous pouvez spécifier Oui à tout.

  • Si vous ne spécifiez pas /keephistory, un texte interactif s’affiche pour vous prévenir des modifications en attente, le cas échéant. Le texte interactif vous dirige vers /preview si vous souhaitez plus d’informations sur les modifications.

  • Si vous spécifiez /keephistory, on vous demande également de répondre Oui, Non ou Oui à tout . Si vous sélectionnez Oui ou Oui à tout, le processus de destruction démarre et les chemins d’accès serveur vers mes éléments détruits s’affichent dans la fenêtre d’invite de commandes.

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

Si vous avez spécifié tip pour la valeur versionspec, les chemins d’accès serveur affichés dans la fenêtre d’invite de commandes incluent les ID de suppression. Par exemple, Destroyed: $/Test1/MyProject;X123 peut apparaître dans la fenêtre d’invite de commandes.

Si vous utilisez l’option /preview, les fichiers ne sont pas détruits, mais le texte de ligne de commande affiche les fichiers qui seraient détruits. Par exemple, si vous saisissez tf destroy /preview $/Test1/MyProject/MyProject/Program.cs à la ligne de commande, la fenêtre de commande affiche le texte suivant :

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

Toutefois, le fichier n’est pas détruit, car vous avez utilisé l’option /preview.

Pour plus d’informations sur l’utilisation de l’utilitaire de ligne de commande tf, consultez Utiliser les commandes de gestion de version Team Foundation.

Effets de /keephistory sur d’autres opérations de gestion de version

Si vous spécifiez l’option /keephistory permettant de conserver l’historique des fichiers détruits, les fichiers sont traités comme détruits par les opérations TFVC suivantes :

  • Modifier le contenu. Si vous essayez de modifier le contenu d’un fichier détruit, par exemple le modifier ou créer une branche, le système émet un message d’erreur indiquant que le contenu a été détruit.

  • Créer une branche, fusionner ou déréserver. Si vous essayez de créer une branche, de fusionner ou de déréserver des éléments détruits, le système émet un message d’erreur indiquant que le contenu des éléments a été détruit.

Détruire les éléments précédemment supprimés

Si un élément a déjà été supprimé, un ID de suppression y est attaché et entraîne un changement de nom de fichier.

La recherche de code ne gère pas les notifications tf destroy. L’utilisation de tf destroy pour des dépôts TFVC ne supprime pas automatiquement les fichiers de l’index de recherche. Par conséquent, ces fichiers apparaissent dans les résultats de la recherche de code. Pour éviter ces scénarios de fichiers fantômes, supprimez les fichiers avant l’opération tf destroy .

Exemples

L’exemple suivant supprime définitivement le fichier a.cs.

tf destroy $/proj/pi/a.cs

L’exemple suivant supprime un dossier, aFolder :

tf delete $/MyTeamProject/aFolder

Pour détruire l’élément supprimé aFolder, saisissez à la ligne de commande :

tf destroy $/MyTeamProject/aFolder;x123

x123 est l’ID de suppression.