53 votes

Comment faire un retour en arrière dans Visual Studio TFS ?

Je travaille sur un sous-module d'un grand projet pour lequel j'utilise VSTS 2008.

J'ai besoin de ramener le module à une version antérieure (environ 4 check-ins précédents). J'ai essayé de le faire dans l'interface utilisateur de Visual Studio, et j'ai finalement réalisé que il n'y a pas d'option de retour en arrière.

Après quelques recherches, j'ai découvert qu'il existe un téléchargement d'outils puissants qui prétendent prendre en charge le retour en arrière via un outil de ligne de commande. Cependant, il semble qu'il n'y ait pratiquement aucune documentation à son sujet.

Quelqu'un peut-il décrire étape par étape comment revenir à une version antérieure dans VS2008 ? (En utilisant Power Tools ou autre).

Question bonus : quelqu'un sait-il si nous pourrions obtenir un support de retour en arrière plus robuste dans VS2010 ?

1 votes

Comme cette question apparaît sur Google lorsqu'on pose des questions sur le retour en arrière dans TFS, je voulais juste ajouter que cela a été rendu beaucoup plus facile dans TFS 2012. Voir ma réponse pour plus d'informations,

40voto

Brett Widmeier Points 602

Cliquez avec le bouton droit de la souris sur le dossier dans l'explorateur de contrôle de source. Choisissez Obtenir une version spécifique. Choisissez la version que vous voulez obtenir (par changeset, date, étiquette, etc.).

EDIT : A ce stade, votre version locale sera la version que vous souhaitez. Retirez les fichiers modifiés, puis réintroduisez-les. Cela fera apparaître l'assistant de fusion et il se plaindra probablement du fait que le serveur a une version plus récente que la vôtre. Suivez l'assistant et fusionnez les fichiers comme vous le souhaitez (l'une des options consiste à ignorer les modifications apportées par le serveur, ce qui semble être votre souhait). À la fin de ce processus, il se peut que l'assistant vous dise qu'aucun fichier n'a été enregistré en raison du processus de fusion (ou quelque chose de ce genre), cliquez simplement sur OK et enregistrez à nouveau. Cela devrait vous permettre d'obtenir ce dont vous avez besoin.

0 votes

Je crois que cela me permet de voir la version que je veux - mais comment puis-je dire à TFS de faire de la version précédente que je veux la version -actuelle- du code.

0 votes

Modifié pour inclure plus d'étapes.

91 votes

Plutôt triste pour TFS si c'est vraiment la solution.

35voto

René Points 4134

Heureusement, cela a été rendu beaucoup plus facile dans TFS 2012. Il existe désormais une option de retour en arrière dans l'interface graphique.

MSDN contient plus d'informations sur la manière de procéder et les options disponibles. Voici le texte de MSDN sur la façon de revenir à une version spécifique :

Pour revenir à une version spécifique :

  1. Dans l'explorateur de contrôle de source, sélectionnez un élément, ouvrez son menu de raccourcis et choisissez Rollback.
  2. Dans la boîte de dialogue Rollback, sélectionnez Rollback to a specific version.

Vous pouvez bien sûr également annuler des jeux de modifications entiers ou une collection de jeux de modifications. Et vous pouvez aussi facilement revenir à un moment précis dans le temps si vous le souhaitez.

2 votes

Oui, cela a bien mieux fonctionné que d'utiliser le retour en arrière dans l'explorateur de solutions comme je le faisais, mais à chaque fois, cela revenait aux fichiers TFS les plus récents. Votre conseil a été très efficace et simple ! C'est la réponse la plus récente et la meilleure, je pense.

1 votes

Quelle est la différence entre Rollback et Get Specific Version ?

1 votes

@KyleDelaney "Get Specific Version" ne fait qu'obtenir cette version sur votre disque sans aucune modification en attente, mais "Rollback" marque automatiquement tous les fichiers modifiés comme "edit, rollback" et vous pouvez directement vérifier la version annulée...

12voto

Andrei Rînea Points 7554

Il y a IS d'une certaine façon, mais je ne trouve pas ça joli Ouvrez l'invite de commande de Visual Studio et

C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC>tf rollback -?
TF - Team Foundation Version Control Tool, Version 10.0.30319.1
Copyright (c) Microsoft Corporation.  All rights reserved.

Rolls back the changes in a single or a range of changesets:
tf rollback /changeset:changesetfrom~changesetto [itemspec] [/recursive]
            [/lock:none|checkin|checkout] [/version:versionspec]
            [/keepmergehistory] [/noprompt] [/login:username,[password]]

tf rollback /toversion:versionspec itemspec [/recursive]
            [/lock:none|checkin|checkout] [/version:versionspec]
            [/keepmergehistory] [/noprompt] [/login:username,[password]]

Versionspec:
    Date/Time         D"any .Net Framework-supported format"
                      or any of the date formats of the local machine
    Changeset number  Cnnnnnn
    Label             Llabelname
    Latest version    T
    Workspace         Wworkspacename;workspaceowner

0 votes

Il semble que cette fonction ne soit pas disponible dans VS2008 (tagué par OP)

11voto

Warren Points 2273

Le site Août 2011 Les outils électriques du TSF ajout d'un support complet de retour en arrière directement dans l'interface utilisateur de Visual Studio 2010.

Lien de téléchargement : http://visualstudiogallery.msdn.microsoft.com/c255a1e4-04ba-4f68-8f4e-cd473d6b971f

Cette fonction est également incluse dans TFS 2012.

2 votes

Cela fonctionne, mais j'ai l'impression que ce n'est pas un vrai retour en arrière. La fonctionnalité souhaitée serait d'effacer tous les changesets faits depuis celui vers lequel nous faisons un rollback. Ceci ajoute juste un nouveau changeset avec le contenu de celui du rollback.

0 votes

@matadur, le problème avec cette approche est que vous pourriez finir par supprimer des changements dont vous n'avez pas besoin -- tels que des changements dans d'autres branches, d'autres solutions, des modèles de processus de construction, et à partir de TFS 2012, des demandes/réponses de revue de code et des demandes/réponses de client de rétroaction également. Vous pouvez également vous retrouver avec des éléments de travail orphelins, des références orphelines dans les constructions, et des espaces de travail locaux qui sont irrémédiablement désynchronisés avec le serveur. (par exemple, que se passe-t-il lorsqu'un développeur enregistre des modifications en attente ?) Si vous voulez tout "annuler", restaurez une sauvegarde de niveau SQL.

0 votes

Cela a parfaitement fonctionné pour nous, puisque nous avions développé une fonctionnalité et qu'après 10 autres modifications, il a été décidé de supprimer cette fonctionnalité. Cela vous permet de ne revenir en arrière que sur des ensembles de modifications spécifiques. C'est fantastique !

6voto

John MacIntyre Points 9255

Extrait de l'article de MSDN Comment faire : Annuler un jeu de modifications (VS2008 bien que d'autres versions soient disponibles)

Pour revenir à une version antérieure d'un fichier

  1. Dans l'Explorateur de contrôle de source, cliquez avec le bouton droit de la souris sur le fichier que vous voulez récupérer. et cliquez ensuite sur Get specific spécifique. La boîte de dialogue Obtenir apparaît.
  2. Sous Type, cliquez sur Changeset.
  3. Sous Changeset, cliquez sur les ellipses ( ).
  4. Dans la boîte de dialogue Recherche de jeux de modifications, utilisez les valeurs par défaut ou spécifiez les critères de recherche. spécifier des critères pour votre recherche, et puis cliquez sur Rechercher.
  5. Sous Résultats, cliquez sur le jeu de modifications qui contient la version à laquelle vous vous voulez rétablir le fichier, puis cliquez sur OK.
  6. Dans la boîte de dialogue Obtenir, sélectionnez la case Écraser les fichiers inscriptibles qui ne sont pas verrouillés, puis cliquez sur Obtenir. La version antérieure du fichier est copiée dans votre dossier de travail de travail local.
  7. Dans l'Explorateur de contrôle de source, cliquez à droite sur le fichier, puis cliquez sur Extraire pour éditer.
  8. Dans la boîte de dialogue Check Out, cliquez sur Check Out.
  9. Dans l'explorateur de contrôle de source, cliquez à nouveau avec le bouton droit de la souris sur le fichier, puis cliquez sur Vérifier les modifications en attente.
  10. Dans la boîte de dialogue Check In - Source Files, cliquez sur le fichier, puis cliquez sur Extraire. La boîte de dialogue Resolve Conflicts apparaît, et un message explique qu'aucun fichier n'a été n'a été archivé car les deux versions ont des modifications qui entrent en conflit.
  11. Dans la boîte de message, cliquez sur OK. La fenêtre Modifications en attente - Conflits apparaît.
  12. (Facultatif) Dans la barre d'outils de la fenêtre Modifications en attente, cliquez sur Comparer Local au serveur. Les copies locales et du serveur locales apparaissent côte à côte pour que vous pour que vous puissiez revoir votre décision avant de annuler les modifications
  13. Dans la fenêtre Modifications en attente, cliquez sur Conserver la version locale.
  14. Dans l'explorateur de contrôle de source, cliquez à droite sur le fichier, puis cliquez sur Vérifier les modifications en attente.
  15. Dans la boîte de dialogue Check In - Source Files, cliquez sur Check in.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X