Rollback, commande (contrôle de version Team Foundation)

Vous pouvez utiliser cette commande pour annuler les effets d'un ou de plusieurs ensembles de modifications appliqués à un ou plusieurs éléments sous contrôle de version. Cette commande ne supprime pas les ensembles de modifications de l'historique des versions d'un élément. À la place, cette commande crée dans votre espace de travail un jeu de modifications en attente qui annulent les effets des ensembles de modifications que vous spécifiez.

Autorisations requises

Pour utiliser cette commande, vous devez avoir les autorisations Lire, Extraire et Archiver définies sur Autoriser. Pour plus d'informations, consultez Autorisations de Team Foundation Server.

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

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 l'une des façons suivantes :

  • Un ensemble de modifications unique

    Par exemple : /changeset:C11

  • Une plage d'ensembles de modifications

    Par exemple : /changeset:C7~C20

  • Date

    Par exemple : /changeset:D09/30/09

  • Une plage de dates

    Exemple :/changeset:D09/23/09~D10/07/09

  • Ensemble de modifications le plus récent

    Exemple: /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 Team Foundation analyse des spécifications d'élément, consultez Syntaxe de ligne de commande (Contrôle de version).

RemarqueRemarque
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 des façons suivantes :

  • Un ensemble de modifications unique

    Par exemple : /toversion:C32

  • Date (à minuit)

    Par exemple : /toversion:D06/19/09

  • Date et heure.

    Exemple : /toversion:D06/19/09T14:32

  • Une étiquette

    Par exemple : /toversion:LTestLabel

  • La version de l'espace de travail auquel le répertoire actuel est mappé.

    Par exemple : /toversion:W

  • Version dans un espace de travail spécifique

    Par exemple : /toversion:WResolveRIConflicts;AKerry

Pour plus d'informations sur la façon dont Team Foundation analyse versionspecs, consultez Syntaxe de ligne de commande (Contrôle de version).

Option

Description

/changeset

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

/keepmergehistory

Cette option a un effet uniquement si un ou plusieurs des ensembles de modifications que vous restaurez incluent une modification branch ou merge. Spécifiez cette option si vous souhaitez de futures fusions entre la même source et la même cible pour exclure les modifications que vous restaurez.

Pour plus d'informations, consultez Exemple : /Option keepmergehistory.

/lock

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

Options de verrouillage

  • Aucun

    Valeur par défaut. Aucun verrou n'est appliqué. Si le fichier que vous restaurez a été verrouillé, cette option supprime le verrouillage.

  • Archivage

    Verrouille un élément jusqu'à ce que vous supprimiez le verrouillage en effectuant un archivage. D'autres utilisateurs peuvent extraire les éléments spécifiés, mais les utilisateurs ne peuvent pas archiver de révisions tant que le verrou n'est pas supprimé. Vous ne pouvez pas verrouiller un fichier qui l'est déjà.

  • Extraction

    Empêche des utilisateurs d'archiver ou d'extraire un élément verrouillé jusqu'à ce que vous supprimiez le verrou en exécutant un archivage.

/login

Pour plus d'informations sur cette option, consultez Options de ligne de commande.

/noprompt

Supprime les boîtes de dialogue qui s'affichent normalement au cours de 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 un fichier à son état initial dans un ensemble de modifications spécifique. Lorsque vous utilisez cette option, vous annulez les effets 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 voulez restaurer.

Notes

La commande tf rollback inverse l'effet de chaque ensemble de modifications spécifié pour chaque élément spécifié. Le tableau suivant répertorie les manières dont l'opération inverse chaque type de modification.

Si vous restaurez cette modification.

... une restauration et la modification supplémentaire suivante sont effectuées

add, branch ou undelete

delete

edit

edit

encoding

encoding

rename/move

rename/move

delete

undelete

merge

La modification qui nie quel que soit les modifications qui ont été fusionnées dans la branche actuelle.

La liste suivante fournit quelques exemples des modifications qui résultent de la commande Rollback :

  • Si vous restaurez un ensemble de modifications dans lequel une modification add s'est produite, l'opération de restauration provoque une modification rollback et une modification delete.

  • Si vous restaurez l'ensemble de modifications 521 dans lequel une modification edit s'est produite, l'opération de restauration provoque une modification rollback et une modification edit qui nie les modifications comprises suite à la modification edit dans l'ensemble de modifications 521.

  • Dans l'ensemble de modifications 132, vous avez fusionné à partir de $/BranchA/File1.txt à $/BranchB/File1.txt. Les modifications comprises dans cette fusion comprennent des modifications edit dans les ensembles de modifications 92 et 104. Dans l'ensemble de modifications 162, vous avez restauré l'ensemble de modifications 132, ce qui a entraîné une modification rollback et une modification edit à $/BranchB/File1.txt qui nie les modifications dans les ensembles de modifications 92 et 104.

Codes de sortie

Les codes de sortie du tableau suivant s'affichent après l'exécution de 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 restauré un ou plusieurs éléments.

100

L'opération n'a pas pu restaurer d'éléments.

Exemples

L'exemple suivant inverse l'effet de l'ensemble de modifications 23 sur tous les éléments modifiés de cet ensemble de modifications.

c:\workspace> tf rollback /changeset:C23

L'exemple suivant inverse l'effet de l'ensemble de modifications 23 sur le fichier a.txt.

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

L'exemple suivant modifie le contenu d'un fichier a.txt pour que la version archivée corresponde à 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 qui a été appliqué le 31 août 2009 à minuit ou avant.

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

Exemple: /Option keepmergehistory

Lorsque vous restaurez un ensemble de modifications qui inclut une modification branch ou merge, vous souhaitez habituellement que les futures fusions entre la même source et la même cible incluent ces modifications. Toutefois, vous pouvez utiliser l'option /keepmergehistory si vous souhaitez effectuer de futures fusions entre la même source et la même cible pour exclure des ensembles de modifications comprises dans une opération de fusion passée.

Par exemple, vous pouvez utiliser cette commande dans la situation suivante :

  1. En date du 30 juin 2009, vous exécutez 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 faites 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 archivez 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 faites dans les ensembles de modifications 297, 301 et 305 dans $/BranchA/Util.cs sont maintenant appliquées également à $/BranchB/Util.cs.

  4. Une semaine plus tard, vous vous rendez compte que les modifications que vous avez faites à $/BranchA/Util.cs en juillet ne sont pas appropriées pour $/BranchB/Util.cs. Vous pouvez utiliser la commande rollback pour annuler ces modifications. Lorsque vous utilisez la commande de restauration pour restaurer une modification merge ou branch, vous devez prendre une décision.

    • Si vous souhaitez que les modifications que vous avez faites en juillet à $/BranchA/Util.cs soient appliquées de nouveau à $/BranchB/Util.cs dans les fusions futures, vous devriez taper la commande suivante :

      c:\workspace> tf rollback /changeset:314
      
    • Si vous souhaitez que les modifications que vous avez faites en juillet à $/BranchA/Util.cs ne soient jamais appliquées de nouveau à $/BranchB/Util.cs dans les fusions futures, vous devriez taper la commande suivante :

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

    c:\workspace> tf merge $/BranchA $/BranchB
    
    • Si vous avez omis l'option /keepmergehistory, la modification merge appliquera à $/BranchB/Util.cs tous les ensembles de modifications appliqués à $/BranchA/Util.cs depuis ensemble de modifications 292, notamment les ensembles de modifications 297, 301, 305. En d'autres termes, une fusion future annulera la modification rollback.

    • Si vous avez inclus l'option /keepmergehistory, l'opération de fusion appliquera à $/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, une fusion future n'annulera pas la modification de restauration. Le contenu sur BranchA peut ne pas correspondre par conséquent au contenu sur BranchB.

Voir aussi

Référence

Merge, commande

Concepts

Opérations disponibles uniquement à partir de la ligne de commande (contrôle de version Team Foundation)

Autres ressources

Commandes de l'utilitaire en ligne de commande Tf