Partager via


Utiliser les commandes de contrôle de version Team Foundation

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

Visual Studio 2019 | Visual Studio 2022

Vous pouvez utiliser des commandes de contrôle de version pour effectuer presque toutes les tâches TFVC (Team Foundation Version Control) que vous pouvez effectuer dans Visual Studio. Vous pouvez également utiliser des commandes de contrôle 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 de Windows Démarrer, sélectionnez l’invite de commandes développeur pour VS2022 ou un raccourci de version antérieure.

Note

Pour Visual Studio 2019 et versions ultérieures, le tf.exe fichier binaire n’est plus à 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 contrôle de version dans le contexte d’un répertoire 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 de la base de code 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 isolément jusqu’à ce que vous soyez prêt à vérifier votre travail. Voici quelques commandes pour gérer 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 le contrôle de version Team Foundation.

Suspendre votre travail

Pour diverses raisons, vous devez parfois mettre de côté un ou plusieurs de vos travaux en cours. Pour suspendre et reprendre votre travail et gérer vos ensembles de rayons, utilisez ces commandes :

Pour plus d’informations, consultez Suspendre votre travail et gérer vos étagères.

Contribuer à votre travail

Utilisez la checkin commande pour archiver votre code dans la base de code de l’équipe :

  • Commande Checkin : vérifie les modifications en attente des fichiers ou des dossiers sur le serveur.

Pour plus d’informations, consultez Vérifier votre travail dans la base de code de l’équipe.

Gérer les fichiers et résoudre les problèmes

Utilisez les ressources des sections suivantes pour gérer les fichiers.

Afficher et gérer les fichiers et dossiers de contrôle de version

Pour plus d’informations, consultez Utiliser l’Explorateur de contrôle de code source pour gérer les fichiers sous contrôle de version.

Afficher et gérer les versions antérieures

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

Comparer des dossiers et des 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 de contrôle de version Team Foundation.

Utiliser des verrous du contrôle de version

  • Commande Verrouiller : verrouille ou déverrouille les fichiers et dossiers.

Pour plus d’informations, consultez Utiliser les verrous de contrôle de version.

Isoler les risques

Utilisez les commandes suivantes pour isoler les risques à l’aide de branches :

Pour plus d’informations, consultez Utiliser des branches pour isoler les risques dans Team Foundation Version Control.

Administrer le contrôle de version

Utilisez les commandes suivantes pour gérer votre système de contrôle de version :

Pour plus d’informations, consultez Configurer les paramètres d’extraction.

Obtenir de l’aide sur les commandes de contrôle de version

Utilisez les commandes suivantes pour obtenir des informations détaillées sur les commandes de contrôle de version :

Comprendre la syntaxe des commandes

La syntaxe de chaque commande apparaît en haut de chaque article de référence.

Arguments obligatoires et facultatifs

Les arguments non entre crochets sont requis. [Crochets] indiquent des arguments facultatifs qui ne sont pas requis pour terminer une commande. Toutefois, certains arguments facultatifs ont des valeurs par défaut qui sont appliquées à la commande même si vous ne spécifiez pas l’option.

Arguments exclusifs

Lorsque les options sont séparées par un canal (|), vous pouvez spécifier l’une des options.

Arguments verbatim et remplaçables

Les éléments qui ne sont pas placés entre crochets sont des options que vous incluez détaillées. 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 de commande et alias

Certaines commandes prennent en charge les raccourcis. Par exemple, vous pouvez appeler la commande Delete avec l’une ou l’autre tf delete des commandes tf del.

Example

Prenons l’exemple de la commande Checkout :

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. Si vous ne les fournissez pas, aucun de leurs effets ne s’applique à la commande :
    • /lock:(none|checkin|checkout): si vous ne spécifiez pas l’option /lock , le système utilise /lock:none par défaut. Sinon, vous pouvez spécifier l’une des autres options de verrouillage.
    • /recursive: Si vous souhaitez extraire de manière récursive plusieurs éléments dans un dossier, vous devez spécifier cette option détaillée.
    • /login:<username>, <password>: Si vous souhaitez exécuter la commande en tant qu’autre utilisateur, vous devez spécifier l’option /login verbatim et remplacer <username> par le nom de l’utilisateur. Si nécessaire, remplacez <password> le mot de passe de l’utilisateur.

Spécifier les éléments affectés par une commande

Vous pouvez utiliser des spécifications d’élément et des spécifications de version pour spécifier les éléments affectés par une commande.

Utiliser un argument de spécification d’élément pour spécifier les éléments affectés

Vous utilisez une spécification d’élément pour spécifier les éléments affectés par une commande. Vous pouvez spécifier des éléments sur une machine cliente 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 spécifie un chemin d’accès aux éléments sur une machine cliente, 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.
  • Chemin d’accès UNC (Universal Naming Convention), 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.
  • 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 trouve pas sur l’ordinateur client. Par exemple, supposons que vous travaillez sur un ordinateur de développement. Si vous avez besoin d’obtenir des données d’historique de révision sur certains éléments qui se trouvent dans 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ément multiples

Pour certaines commandes, vous pouvez spécifier 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.

Utiliser un argument de spécification de version pour spécifier les versions affectées d’éléments

Vous utilisez une spécification de version pour spécifier 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 spécifier 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 spécifier une spécification de version :

Type Syntaxe Descriptif Examples Résultat
Ensemble de modifications [C]<version-number> Spécifie les éléments en fonction d’un numéro d’ensemble de modifications. Si un élément dans l’étendue n’a pas été modifié dans le jeu de modifications spécifié, le système accepte la dernière version de l’élément qui s’est produit avant le jeu de modifications spécifié. Vous pouvez omettre C si vous spécifiez 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 le jeu 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. La 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 lors de la création du jeu de modifications intitulé LastKnownGood . 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>

ou

D<mm/dd/yyyy>

ou

Tout format pris en charge par .NET Framework.

ou

Tous les formats de date pris en charge sur l’ordinateur local.
Spécifie un ensemble de modifications 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. La 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 Les chaînes de format date et heure Standard et DateTime.
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 spécifie la version dans l’espace ResolveRIConflicts de travail propriétaire PatW .
Conseil / Astuce T Spécifie la version la plus récente. - -

Utiliser des options pour modifier la façon dont une commande fonctionne

Vous pouvez utiliser certaines options courantes pour modifier la façon 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 d’entrée 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 contrôle 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 d’entrée :

    • 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 boîtes de dialogue et Windows ne s’affichent pas. Par exemple, vous pouvez utiliser cette option avec la commande Checkin. Le système n’affiche pas la boîte de dialogue Archiver pour vous permettre de 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 sortie vers l’invite de commandes. Par exemple, vous pouvez utiliser cette option avec la commande Historique. Les données sont affichées dans la fenêtre d’invite de commandes au lieu de la fenêtre Historique.

Utiliser l’option pour spécifier les informations d’identification /login

Utilisez l’option /login pour spécifier 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 de votre membre de l’équipe. Vous utilisez la commande Lock pour déverrouiller un fichier que vous avez verrouillé précédemment :

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.

Utiliser l’option /lock pour appliquer ou supprimer un verrou

Important

En guise de meilleure pratique, utilisez l’option /lock avec discrétion. Informez vos collègues pourquoi vous verrouillez un élément et lorsque vous envisagez de supprimer le verrou.

Utilisez l’option /lock pour appliquer ou supprimer un verrou en même temps que vous exécutez une autre commande telle que Ajouter ou Modifier.

/lock:(none|checkin|checkout)

La /lock commande utilise les options suivantes :

  • None: aucun verrou n’est placé sur un élément. Si un verrou est déjà en place, il est supprimé.

  • Checkin ou Checkout: un verrou est appliqué. Pour plus d’informations, consultez Comprendre les types de verrous.

Note

Dans quelques cas, l’opération de verrouillage peut échouer :

  • Si d’autres utilisateurs ont verrouillé l’un des éléments spécifiés, l’opération de verrouillage échoue.
  • S’il existe 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 verrou sur un élément.

Utiliser les raccourcis d’option

Vous pouvez abrégér les options suivantes.

Option

Alias d’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

Succès.

1

Réussite partielle. Au moins quelque chose, ou peut-être tout, n’a pas réussi à réussir.

2

Commande non reconnue.

100

Rien n’a réussi.

Par exemple, supposons que 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.