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 :

Développer votre application

Utilisez ces commandes pour développer votre application sous contrôle de version avec votre équipe :

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

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

Pour plus d’informations, consultez Afficher et gérer les versions antérieures.

Comparer les dossiers et les fichiers

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

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 ou Checkout : 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.