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 :
|
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).
Remarque
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 :
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
|
/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 :
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.