Utiliser les commandes de contrôle de version Team Foundation
Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2019
Visual Studio 2019 | Visual Studio 2022
Vous pouvez utiliser des commandes de gestion de version pour effectuer presque toutes les tâches Team Foundation Version Control (TFVC) que vous pouvez effectuer dans Visual Studio. Vous pouvez également utiliser des commandes de gestion de version pour effectuer plusieurs tâches qui ne peuvent pas être effectuées dans Visual Studio. Pour exécuter des commandes de contrôle de version à partir d’une invite de commandes ou dans un script, vous utilisez l’outil tf.exe
.
Exécuter une commande
Pour lancer l’invite de commandes Visual Studio, à partir du démarrage de Windows, sélectionnez le raccourci Invite de commandes développeur pour VS2022 ou version antérieure.
Notes
Pour Visual Studio 2019 et versions ultérieures, le fichier binaire tf.exe
n’est plus dans un emplacement fixe dans le chemin d’installation de Visual Studio, comme dans certaines versions précédentes, par exemple, C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE
. Si votre script utilise tf.exe
, ne codez pas en dur un chemin d’accès au fichier en fonction du chemin d’installation de Visual Studio.
Dans la plupart des cas, vous exécutez la commande de gestion de version dans le contexte d’un annuaire qui est mappé dans l’espace de travail. Par exemple, $/SiteApp/Main/
est mappé à c:\\code\\SiteApp\\Main\\
. Pour obtenir la dernière version de tous les éléments de l’espace de travail, utilisez la commande suivante :
c:\code\SiteApp\Main\SolutionA>tf get
Configurer votre ordinateur de développement et gérer les espaces de travail
Votre espace de travail est une copie locale du codebase de votre équipe. Étant donné qu’il s’agit d’une copie locale sur votre ordinateur de développement, vous pouvez développer et tester votre code de manière isolée jusqu’à ce que vous soyez prêt à vérifier votre travail. Voici certaines commandes pour la gestion de votre espace de travail :
Pour plus d’informations, consultez les ressources suivantes :
- Configurer le contrôle de version Team Foundation sur votre ordinateur de développement
- Créer et utiliser des espaces de travail
Développer votre application
Utilisez ces commandes pour développer votre application sous contrôle de version avec votre équipe :
- Commande Ajouter : ajoute des fichiers et des dossiers à la gestion de version.
- Commande Extraire (ou Modifier) : extrait un fichier et modifie son état de modification en attente sur modifier.
- Commande Supprimer (Team Foundation Version Control) : supprime les fichiers et dossiers du serveur Azure DevOps et les supprime du disque.
- Commande Obtenir : obtient (télécharge) la dernière version ou une version spécifiée d’un ou plusieurs fichiers ou dossiers d’Azure DevOps Server vers l’espace de travail.
- Commande Renommer (Team Foundation Version Control) : modifie le nom ou le chemin d’accès d’un fichier ou d’un dossier.
- Commande État : Affiche des informations sur les modifications en attente apportées aux éléments de fichiers et dossiers dans un ou plusieurs espaces de travail, ou dans un jeu de réservations.
- Commande Annuler : ignore les modifications en attente spécifiées dans les fichiers ou dossiers.
- Commande Annuler la suppression : restaure les éléments précédemment supprimés.
Pour plus d’informations, consultez Développer votre application dans Team Foundation Version Control.
Interrompre votre travail
Pour diverses raisons, vous devez parfois mettre de côté une partie ou tout votre travail en cours. Pour suspendre et reprendre votre travail, et pour gérer vos jeux de réservations, utilisez les commandes suivantes :
Pour plus d’informations, consultez Suspendre votre travail et gérer vos jeux de réservations.
Partager votre travail
Utilisez la commande checkin
pour archiver votre code à la base de code de l’équipe :
- Commande Archiver : archive les modifications en attente des fichiers ou dossiers sur le serveur.
Pour plus d’informations, consultez Archiver votre travail sur la base de code de l’équipe.
Gérer des fichiers et résoudre des problèmes
Utilisez les ressources des sections suivantes pour gérer les fichiers.
Afficher et gérer les fichiers et dossiers de gestion de version
- Commande Propriétés (ou Info) : affiche des informations sur les éléments de la gestion de version.
- Commande Dir : affiche le contenu du serveur de gestion de version.
- Commande Détruire (Team Foundation Version Control) : supprime définitivement les fichiers à version contrôlée.
- Commande Versions locales : affiche les versions des éléments de l’espace de travail.
Pour plus d’informations, consultez Utiliser l’Explorateur du contrôle de code source pour gérer les fichiers sous gestion de version.
Afficher et gérer les versions antérieures
- Commande d’ensemble de modifications : modifie ou affiche les attributs de l’ensemble de modifications.
- Commande Historique : Affiche l’historique des révisions d’un ou de plusieurs fichiers ou dossiers.
- Commande Étiquette (Team Foundation Version Control) : attache ou supprime des étiquettes de fichiers ou de dossiers.
- Commande Étiquettes : affiche des informations sur les étiquettes utilisées sur le serveur.
- Commande Restaurer (Team Foundation Version Control) : restaure les effets des ensembles de modifications.
- Commande Annuler l’étiquetage : supprime un élément d’une étiquette existante dans le serveur.
- Commande Afficher : récupère une version spécifiée d’un fichier et l’affiche.
Pour plus d’informations, consultez Afficher et gérer les versions antérieures.
Comparer les dossiers et les fichiers
- Commande Différence : compare les différences entre les fichiers et les jeux de réservations.
- Commande Folderdiff : compare les différences entre les fichiers dans deux dossiers.
Pour plus d’informations, consultez Afficher et gérer les versions antérieures.
Résoudre les conflits de fichiers
- Commande Résoudre : résout les conflits entre les éléments de votre espace de travail et sur le serveur.
Pour plus d’informations, consultez Résoudre les conflits Team Foundation Version Control.
Utiliser des verrous du contrôle de version
- Commande Verrouiller : verrouille ou déverrouille les fichiers et dossiers.
Pour plus d’informations, consultez Utiliser le verrouillage de gestion de version.
Isoler les risques
Utilisez les commandes suivantes pour isoler les risques à l’aide des branches :
Pour en savoir plus, consultez Utiliser les branches pour isoler le risque dans Team Foundation Version Control.
Administrer la gestion de version
Utilisez les commandes suivantes pour administrer votre système de gestion de version :
Pour plus d’informations, consultez Configurer les paramètres d’extraction.
Obtenir de l’aide sur les commandes de gestion de version
Utiliser les commandes suivantes pour obtenir plus d’informations sur les commandes de gestion de version :
Comprendre la syntaxe des commandes
La syntaxe de chaque commande apparaît en haut de chaque article de référence.
Arguments requis et facultatifs
Des arguments sans crochets sont requis. [Les crochets] indiquent les arguments facultatifs qui ne sont pas requis pour exécuter une commande. Toutefois, certains arguments facultatifs possèdent des valeurs par défaut qui sont appliquées à la commande même si vous ne définissez pas l’option.
Argument exclusifs
Lorsque les options sont séparées par un canal (|), vous pouvez définir l’une des options.
Arguments textuels et remplaçables
Les éléments qui ne sont pas placés entre crochets sont des options que vous incluez textuellement. Les éléments placés entre crochets (< et >) sont des arguments que vous devez remplacer par des caractères réels pour exécuter une commande.
Raccourcis et alias des commandes
Certaines commandes prennent en charge des raccourcis. Par exemple, vous pouvez appeler la commande Supprimer avec tf delete
ou tf del
.
Exemple
Par exemple, envisagez la commande Extraire :
tf checkout [/lock:( none|checkin|checkout)] [/recursive] <item-spec> [/login: <username>, [<password>]]
Cet exemple inclut les arguments suivants :
<item-spec>
: vous devez remplacer cet argument par une spécification d’élément qui identifie les éléments que vous extrayez.- Les arguments suivants sont facultatifs. If you don't supply them, none of their effects apply to the command:
/lock:(none|checkin|checkout)
: si vous ne définissez pas l’option/lock
, le système utilise/lock:none
par défaut. Dans le cas contraire, vous pouvez définir l’une des options de verrouillage./recursive
: si vous voulez extraire de manière récursive plusieurs éléments dans un dossier, vous devez définir cette option textuellement./login:<username>, <password>
: Si vous souhaitez exécuter la commande en tant qu’autre utilisateur, vous devez définir l’option/login
verbatim et remplacer<username>
par le nom de l’utilisateur. Si nécessaire, remplacez<password>
par le mot de passe de l’utilisateur.
Indiquer les éléments affectés par une commande
Vous pouvez utiliser des spécifications d’élément et des spécifications de version pour définir les éléments affectés par une commande.
Utiliser un argument spécifications d’élément pour indiquer les éléments affectés
Vous utilisez une spécification d’élément pour indiquer les éléments affectés par une commande. Vous pouvez définir des éléments sur un ordinateur client ou sur votre serveur Azure DevOps. Vous pouvez utiliser des caractères génériques tels que * et ?.
Arguments de spécification d’élément client
Un argument de spécification d’élément client définit un chemin d’accès aux éléments sur un ordinateur client, par exemple :
- Un dossier, par exemple, c:\code\SiteApp\Main\SolutionA\.
- Un fichier, par exemple, c:\code\SiteApp\Main\SolutionA\Project1\program.cs.
- Plusieurs fichiers, par exemple, c:\code\SiteApp\Main\SolutionA\*.cs.
- Un chemin d’accès universel à la convention d’affectation de noms (UNC), tel que \\myshare\code\SiteApp\Main.
Arguments de spécification d’élément de serveur
Un argument de spécification d’élément de serveur spécifie un chemin d’accès aux éléments sur votre serveur Azure DevOps, par exemple :
- Un dossier, par exemple $/SiteApp/Main/SolutionA.
- Un fichier, par exemple $/SiteApp/Main/SolutionA/Project1/program.cs.
- Plusieurs fichiers, par exemple $/SiteApp/Main/SolutionA/*.cs.
Vous utilisez généralement des arguments de spécification d’élément de serveur lorsque vous devez exécuter une commande sur des éléments qui ne se trouvent pas sur l’ordinateur client. Par exemple, supposons que vous travaillez sur une machine de développement. Si vous avez besoin d’obtenir des données d’historique de révision sur certains éléments d’une collection de projets dans laquelle vous ne travaillez pas, vous pouvez utiliser la commande suivante :
c:\>tf history /collection:https://fabrikam-3:8080/tfs/DefaultCollection
$/SiteApp/Main/SolutionA/Project1/* /recursive
/noprompt
Arguments de spécification d’éléments multiples
Pour certaines commandes, vous pouvez définir plusieurs arguments de spécification d’élément, par exemple :
c:\code\SiteApp\Main\SolutionA\Project1\>tf checkout program1.cs program2.c
Cette commande extrait program.cs et program2.c.
Utilisez un argument de spécification de version pour indiquer les versions des éléments affectés
Vous utilisez une spécification de version pour indiquer la version des éléments affectés par une commande. Pour fournir une spécification de version, vous pouvez :
Utilisez l’option
/version
, par exemple,/version:C44
.Ajoutez la spécification de version à une spécification d’élément avec un point-virgule, par exemple,
program1.cs;C44
.
Lorsque vous utilisez la commande Historique ou la commande Différence, vous pouvez définir une plage de versions en séparant les versions par un tilde, par exemple :
c:\code\SiteApp\Main\SolutionA>tf history /noprompt * /recursive /v:D4/12/2022~D4/24/2022
Utilisez la syntaxe suivante pour définir une spécification de version :
Type | Syntaxe | Description | Exemples | Résultats |
---|---|---|---|---|
Ensemble de modifications | [C]<version-number> |
Spécifie des éléments en fonction d'un numéro d'ensemble de modifications. Si un élément situé dans la portée n’a pas été modifié dans l’ensemble de modifications spécifié, le système prend la dernière version de l’élément qui est survenue avant l’ensemble de modifications spécifié. Vous pouvez omettre C si vous définissez uniquement un nombre. |
tf get readme.txt /v:C8 tf get readme.txt /v:8 tf get readme.txt;8 |
Si readme.txt a été modifié dans l’ensemble de modifications 8, l’exemple de code obtient cette version du fichier. Sinon, il obtient la version la plus récente de readme.txt avant la version 8. |
Étiquette | L<label> |
Spécifie les éléments auxquels une étiquette est appliquée. | tf get readme.txt;LJulyHotFix tf get /version:LLastKnownGood |
Le premier exemple obtient la version de readme.txt qui a été étiquetée JulyHotFix. Le deuxième récupère la version de tous les éléments étiquetés (et supprime ces éléments non étiquetés) dans l’espace de travail lorsqu’ils existaient quand l’ensemble de modifications étiqueté LastKnownGood a été créé. Vous pouvez utiliser le code dans le deuxième exemple dans le cadre d’un processus de génération automatisé. |
Date et heure | D<yyyy-mm-ddTxx:xx> or D<mm/dd/yyyy> or Tout format pris en charge par .NET Framework. or Tout format de date pris en charge sur l'ordinateur local. |
Spécifie un ensemble de modifications qui a été créé à une date spécifiée à une heure spécifique. | tf get /version:D2022-03-22 tf get /version:D2022-03-22T09:00 |
Le premier exemple met à jour l’espace de travail pour qu’il corresponde au codebase tel qu’il existait le 22 mars 2022 à minuit. Le deuxième met à jour l’espace de travail pour qu’il corresponde au codebase tel qu’il existait le 22 mars 2022 à 9h00. Pour plus d’informations sur les formats de date et d’heure pris en charge par .NET Framework, consultez DateTime et Chaînes de format de date et d’heure standard. |
Espace de travail actuel | W |
Spécifie la version dans votre espace de travail. | - | - |
Espace de travail spécifié | W<workspace-name>; <workspace-owner> |
Spécifie la version dans un espace de travail spécifié. | tf get /version:WResolveRIConflicts;PatW |
L’exemple définit la version dans l’espace de travail ResolveRIConflicts qui est la propriété de PatW . |
Conseil | T |
Spécifie la version la plus récente. | - | - |
Utiliser les options pour modifier le fonctionnement d'une commande
Vous pouvez utiliser certaines options communes pour modifier la manière dont une commande fonctionne.
Utilisez l’option /noprompt
pour supprimer les demandes d’entrée de données et rediriger les données de sortie
Utilisez l’option /noprompt
pour supprimer les demandes de saisie de données et rediriger les données de sortie vers la fenêtre d’invite de commandes. Cette option peut être utile lorsque vous devez utiliser des commandes de gestion de version dans un script où :
- La commande se poursuit sans intervention d’un utilisateur.
- Les données sont disponibles pour que le script effectue des opérations, telles que l’analyse ou la capture.
Lorsque vous utilisez cette option, le système :
supprime toutes les demandes de saisie :
- Les questions ne sont pas posées dans la fenêtre d’invite de commandes. Par exemple, lorsque vous utilisez la commande Annuler avec cette option, le système ne vous invite pas à confirmer si vous souhaitez annuler les modifications.
- Les fenêtres et les boîtes de dialogue n’apparaissent pas. Par exemple, vous pouvez utiliser cette option avec la commande Archiver. Le système n’affiche pas la boîte de dialogue Archiver pour confirmer les éléments et les éléments de travail associés. Au lieu de cela, le système vérifie les éléments sans confirmation.
Redirige les données de production vers l'invite de commandes. Par exemple, vous pouvez utiliser cette option avec la commande Historique. Les données apparaissent dans la fenêtre d’invite de commandes au lieu de la fenêtre Historique.
Utiliser l’option /login
pour définir les informations d’identification
Utilisez l’option /login
pour définir le compte d’utilisateur du serveur Azure DevOps dans lequel exécuter une commande. Cette option peut être utile lorsque vous travaillez sur la machine d’un autre membre de l’équipe.
Par exemple, supposons que vous travaillez sur la machine de développement d’un membre de votre équipe. Vous utilisez la commande Verrouiller pour déverrouiller un fichier que vous avez précédemment verrouillé :
c:\code\SiteApp\Main> tf lock /lock:none program.cs /login:<username>,<password>
Si vous souhaitez éviter d’afficher votre mot de passe dans l’invite de commandes, vous pouvez entrer la commande sans le mot de passe :
c:\code\SiteApp\Main> tf lock /lock:none program.cs /login:<username>
Après avoir entré cette commande, le système vous invite à entrer votre mot de passe dans une boîte de dialogue qui masque votre entrée.
Utilisez l’option /lock
pour appliquer ou supprimer un verrouillage
Important
Comme meilleure pratique, utilisez l’option /lock
avec discrétion. Dites à vos collègues pourquoi vous verrouillez un élément et quand vous envisagez de supprimer le verrouillage.
Utilisez l’option /lock
pour appliquer ou supprimer un verrouillage en même temps que vous exécutez une autre commande telle que Ajouter ou Modifier.
/lock:(none|checkin|checkout)
La commande /lock
utilise les options suivantes :
None
: aucun verrouillage n’est placé sur un élément. Si un verrouillage est déjà en place, il est supprimé.Checkin
ouCheckout
: aucun verrouillage n’est appliqué. Pour plus d’informations, consultez Comprendre les types de verrouillages.
Notes
Parfois, l'opération de verrouillage peut échouer :
- Si d’autres utilisateurs ont verrouillé des éléments spécifiés, l’opération de verrouillage échoue.
- S’il y a déjà une modification en attente de l’élément spécifié, le système ignore ce commutateur. Dans ce cas, vous devez utiliser la commande Verrouiller pour modifier un verrouillage sur un élément.
Utiliser des raccourcis d'option
Vous pouvez abréger les options ci-dessous.
Option
Alias de l'option
/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
Comprendre les codes de sortie
Les commandes de contrôle de version retournent les codes de sortie suivants :
Code de sortie
Définition
0
Opération réussie.
1
Réussite partielle. Au moins quelque chose, ou peut-être tout, a échoué.
2
Commande non reconnue.
100
Aucune opération n'a réussi.
Par exemple, si vous exécutez la commande suivante :
c:\code\SiteApp\Main\SolutionA\Project1\>tf checkout program1.cs program2.c
Si l’un des fichiers que vous essayez d’extraire n’existe pas sur le serveur, la commande retourne 1 pour indiquer une réussite partielle.