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]]
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). RemarqueVous 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. |
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. |
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/
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 :
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.
En juillet, vous faites plusieurs modifications à $/BranchA/Util.cs. Ces modifications sont comprises dans les ensembles de modifications 297, 301 et 305.
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.
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
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.
Référence
Concepts
Autres ressources