Partager via


Commande Rollback (Team Foundation Version Control)

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

Visual Studio 2019 | Visual Studio 2022

Vous pouvez utiliser la commande TFVC (Team Foundation Version Control tf rollback) pour restaurer les effets d’un ou plusieurs ensembles de modifications sur un ou plusieurs éléments contrôlés par la version. Cette commande ne supprime pas les ensembles de modifications de l’historique des versions d’un élément. Au lieu de cela, cette commande crée un ensemble de modifications en attente dans votre espace de travail qui annulent les effets des ensembles de modifications que vous spécifiez.

Conditions préalables

Pour utiliser cette commande, disposez des autorisations Lire, Extraireet Autorisations d’archivage définies sur Autoriser. Pour plus d’informations, consultez autorisations TFVC par défaut.

Syntaxe

tf rollback /toversion:VersionSpec ItemSpec [/recursive] [/lock:none|checkin|checkout] [/version:versionspec] [/keepmergehistory] [/login:username,[password]] [/noprompt]
tf rollback /changeset:ChangesetFrom~ChangesetTo [ItemSpec] [/recursive] [/lock:none|checkin|checkout] [/version:VersionSpec]
[/keepmergehistory] [/noprompt] [/login:username,[password]]

Paramètres

Arguments

argument

Description

<ChangesetFrom>~<ChangesetTo>

Utilisez cet argument avec l’option /changeset pour spécifier les ensembles de modifications que vous souhaitez restaurer. Vous pouvez spécifier les ensembles de modifications de la manière suivante :

  • Un ensemble de modifications unique, par exemple /changeset:C11
  • Plage d’ensembles de modifications, par exemple /changeset:C7~C20
  • Date, par exemple /changeset:D09/30/09
  • Plage de dates, par exemple /changeset:D09/23/09~D10/07/09
  • Ensemble de modifications le plus récent, /changeset:Tip ou /changeset:T

<ItemSpec>

Utilisez cet argument pour spécifier un ou plusieurs éléments que vous souhaitez restaurer. Si vous utilisez l’option /toversion, vous devez spécifier cet argument.

Pour plus d’informations sur la façon dont TFVC analyse les spécifications des éléments, consultez Utiliser les commandes de contrôle de version Team Foundation.

Note

Vous pouvez spécifier plusieurs arguments itemspec.

<VersionSpec>

Valeur fournie par l’utilisateur pour l’option /version et l’option /toversion.

Utilisez cet argument avec l’option /toversion pour rétablir un fichier à son état dans un ensemble de modifications spécifique. Vous pouvez spécifier la version de la manière suivante :

  • Un ensemble de modifications unique, par exemple /toversion:C32
  • Date à minuit, par exemple /toversion:D06/19/09
  • Date et heure, par exemple /toversion:D06/19/09T14:32
  • Étiquette, par exemple /toversion:LTestLabel
  • Version de l’espace de travail mappée au répertoire actif, /toversion:W
  • Version dans un espace de travail spécifique, par exemple /toversion:WResolveRIConflicts;AKerry

Pour plus d’informations sur la façon dont TFVC analyse le versionspec, consultez Utiliser les commandes de contrôle de version Team Foundation.

Options

option

Description

/changeset

Utilisez cette option pour spécifier un ou plusieurs ensembles de modifications spécifiques que vous souhaitez négation.

/keepmergehistory

Cette option n’a effet que si un ou plusieurs ensembles de modifications que vous annulez incluent une branche ou fusionner modification. Spécifiez cette option si vous souhaitez que les fusions futures entre la même source et la même cible excluent les modifications que vous annulez.

/lock

Spécifiez cette option pour empêcher d’autres utilisateurs d’archiver ou d’extraire des éléments jusqu’à ce que vous terminiez la restauration de toutes les modifications associées. Pour plus d’informations, consultez Comprendre les types de verrous.

Options de verrouillage :

  • None. Faire défaut. Aucun verrou n’est appliqué. Si le fichier que vous annulez a été verrouillé, cette option supprime le verrou.
  • Checkin. Verrouille un élément jusqu’à ce que vous relâchez le verrou en effectuant un archivage. D’autres utilisateurs peuvent extraire l’élément spécifié, mais les utilisateurs ne peuvent pas archiver les révisions tant que le verrou n’est pas supprimé. Vous ne pouvez pas verrouiller un fichier déjà verrouillé.
  • Checkout. Empêche les utilisateurs d’archiver ou d’extraire un élément verrouillé jusqu’à ce que vous supprimiez le verrou en effectuant un archivage.

/login

Pour plus d’informations sur cette option, consultez Utiliser des options pour modifier la façon dont une fonction de commande.

/noprompt

Utilisez cette option pour supprimer les boîtes de dialogue qui s’affichent autrement pendant cette opération.

/recursive

Spécifiez cette option si vous souhaitez que l’opération inclue des éléments dans les sous-dossiers.

/toversion

Spécifiez cette option pour rétablir l’état d’un fichier dans un ensemble de modifications spécifique. Lorsque vous utilisez cette option, vous annulez l’effet de tous les ensembles de modifications qui ont été appliqués depuis la version que vous spécifiez.

/version

Spécifie la version actuelle des fichiers et dossiers que vous souhaitez restaurer.

Remarques

La commande tf rollback annule l’effet de chaque ensemble de modifications que vous spécifiez pour chaque élément que vous spécifiez. Le tableau suivant répertorie la façon dont l’opération annule chaque type de modification.

Type de modification restauré Type de modification de restauration
ajouter, brancheou annuler la suppression supprimer
modifier modifier
d’encodage d’encodage
renommer/déplacer renommer/déplacer
supprimer annuler la suppression des
de fusion Modifiez ce qui annule les modifications fusionnées dans la branche actuelle.

La liste suivante fournit des exemples de modifications résultant de la commande rollback :

  • Vous restaurez un ensemble de modifications dans lequel une ajouter modification s’est produite. L’opération de restauration entraîne une modification de de restauration et une modification de suppression.

  • Vous restaurez l’ensemble de modifications 521 dans lequel une modification de s’est produite. L’opération de restauration entraîne une modification de restauration et une modification de qui annule la modification modification dans l’ensemble de modifications 521.

  • Dans l’ensemble de modifications 132, vous avez fusionné de $/BranchA/File1.txt à $/BranchB/File1.txt. Les modifications apportées à cette fusion comprenaient modifier modifications dans les ensembles de modifications 92 et 104. Dans l’ensemble de modifications 162, vous restaurez l’ensemble de modifications 132, ce qui entraîne une modification de de restauration et une modification modification sur $/BranchB/File1.txt qui annule la modification modifier modifications dans les jeux de modifications 92 et 104.

Codes de sortie

Un code de sortie du tableau suivant s’affiche après avoir exécuté la commande tf rollback.

Code de sortie Description
0 L’opération a restauré tous les éléments avec succès.
1 L’opération a restauré au moins un élément avec succès, mais n’a pas pu restaurer un ou plusieurs éléments.
100 L’opération n’a pas pu restaurer les éléments.

Exemples

L’exemple suivant annule l’effet du jeu de modifications 23 sur tous les éléments qui ont été modifiés dans ce jeu de modifications :

c:\workspace> tf rollback /changeset:C23

L’exemple suivant annule l’effet du jeu de modifications 23 sur le fichier a.txt:

c:\workspace> tf rollback /changeset:C23 a.txt

L’exemple suivant modifie le contenu de a.txt pour qu’il corresponde à la version vérifiée avec l’ensemble de modifications 23 :

c:\workspace> tf rollback /toversion:C23 a.txt

L’exemple suivant modifie le contenu de OurTeamProject pour qu’il corresponde au dernier ensemble de modifications appliqué à minuit le 31 août 2009 :

c:\workspace> tf rollback /toversion:D08/31/2009 /recursive $/OurTeamProject/

Exemple d’option /keepmergehistory

Lorsque vous restaurez un ensemble de modifications incluant une branche ou une modification de fusion, vous souhaitez généralement que les fusions futures entre la même source et la même cible incluent ces modifications. Toutefois, vous pouvez utiliser l’option /keepmergehistory si vous souhaitez que les fusions futures entre la même source et la même cible excluent les ensembles de modifications qui ont été compris dans une opération de fusion passée. Par exemple:

  1. Le 30 juin 2009, vous effectuez une fusion complète de tous les éléments de $/BranchA/ à $/BranchB/.

    c:\workspace> tf merge $/BranchA $/BranchB
    

    Vous archivez cette fusion dans le cadre de l’ensemble de modifications 292.

  2. En juillet, vous apportez plusieurs modifications $/BranchA/Util.cs. Ces modifications sont comprises dans les ensembles de modifications 297, 301 et 305.

  3. Le 1er août 2009, vous fusionnez $/BranchA/Util.cs à $/BranchB/Util.cs.

    c:\workspace> tf merge $/BranchA/Util.cs $/BranchB/Util.cs
    

    Vous vérifiez la modification dans le cadre de l’ensemble de modifications 314. Le résultat de cette opération est que les modifications que vous avez apportées dans les ensembles de modifications 297, 301 et 305 à $/BranchA/Util.cs sont désormais également appliquées à $/BranchB/Util.cs.

  4. Une semaine plus tard, vous réalisez que les modifications que vous avez apportées à $/BranchA/Util.cs en juillet ne sont pas appropriées pour $/BranchB/Util.cs. Vous pouvez utiliser la commande rollback pour négation de ces modifications. Lorsque vous utilisez la commande rollback pour restaurer une fusion modification ou une branche modification, vous avez une décision à prendre.

    • Si vous souhaitez que les modifications apportées à $/BranchA/Util.cs en juillet soient réappliguées à $/BranchB/Util.cs dans les fusions ultérieures, entrez la commande suivante :

      c:\workspace> tf rollback /changeset:314
      
    • Si vous souhaitez que les modifications apportées à $/BranchA/Util.cs en juillet ne soient jamais réappliquées à $/BranchB/Util.cs dans les fusions ultérieures, entrez la commande suivante :

      c:\workspace> tf rollback /changeset:314 /keepmergehistory
      
  5. Quelques semaines plus tard, vous fusionnez $/BranchA/ en $/BranchB/.

    c:\workspace> tf merge $/BranchA $/BranchB
    
    • Si vous avez omis l’option lors de la restauration, la modification de fusion s’applique à $/BranchB/Util.cs tous les ensembles de modifications appliqués à $/BranchA/Util.cs depuis le changeet 292, y compris les ensembles de modifications 297, 301 et 305. En d’autres termes, la fusion annule la modification de restauration.

    • Si vous avez inclus l’option /keepmergehistory lors de la restauration, l’opération de fusion s’applique à $/BranchB/Util.cs tous les ensembles de modifications appliqués à $/BranchA/Util.cs depuis l’ensemble de modifications 292, à l’exception des ensembles de modifications 297, 301 et 305. En d’autres termes, la fusion n’annule pas la modification de restauration. Par conséquent, le contenu de BranchA peut ne pas correspondre au contenu sur BranchB .