80 votes

Annulation des modifications incorrectes avec svn dans Eclipse

Disons que j'ai commis quelque mauvaise changements de référentiel Subversion. Puis-je m'engager les bons changements, que je veux garder.

Ce serait plus simple pour faire reculer ces mauvais changements dans Eclipse, et garder les bons changements? En supposant que les dossiers relatifs aux mauvais changements ne sont pas les mêmes que ceux concernant les bons changements. Comment les choses changent, si les bonnes modifications ont été apportées aux mêmes fichiers que mal de changements?

Je suis surtout à la recherche d'un moyen de le faire via des plugins Eclipse (Subclipse ou Subversive), mais en ligne de commande les commandes sont également intéressants.

77voto

kirlich Points 831

Dans Eclipse Ganymede (Subclipse)

Sélectionnez le projet/le fichier contient mauvais changement, et dans le menu qui apparaît, choisissez:

L'Équipe -> Afficher L'Historique

Les révisions liées à ce projet/fichier sera affiché dans l'onglet Historique.

Trouver révision où le "mauvais changements" ont été commis et de pop-up menu, choisissez:

Annuler les Changements de Révision X

Cela permettra de fusionner les modifications dans le fichier(s) modifié (dans le mauvais révision, avec de révision avant le mauvais révision.

Il y a deux scénarios à partir d'ici:

  1. Si vous avez commis aucune modification de ce fichier (mauvais révision de la dernière révision de ce fichier), il va tout simplement supprimer les modifications effectuées dans de mauvaises révision. Ces changements sont fusionnées à votre copie de travail de sorte que vous avez à les commettre.

  2. Si vous avez commis quelques changements pour ce fichier (mauvais révision n'est pas de la dernière révision de ce fichier), vous devrez manuellement la résolution des conflits. Disons que vous avez un fichier readme.txt avec, et le mauvais numéro de révision est de 33. Aussi, vous avez fait une autre de s'engager pour que le fichier en cours de révision 34. Après vous choisissez d'annuler les Changements de Révision 33 vous aurez la suite dans votre copie de travail:

readme.txt.fusion-gauche.r33 - bad révision

readme.txt.fusion-droit.r32 - avant que le mauvais révision

readme.txt.de travail - de la copie de travail de la version (de même que dans r34 si vous n'avez pas toutes les modifications non validées)

D'origine readme.txt sera marqué en conflit, et contiendra version fusionnée (où les changements de mauvais révision sont supprimés) avec certains marqueurs (<<<<<<< .de travail etc). Si vous voulez juste pour supprimer les modifications de mauvais révision et de conserver les modifications apportées après cela, alors tout ce que vous avez à faire est de supprimer les marqueurs. Sinon, vous pouvez copier le contenu de l'un des 3 fichiers mentionnés ci-dessus de fichier d'origine. Quel que soit votre choix, lorsque vous avez terminé, marque de conflit résolu par

L'Équipe De Marque Résolu

Les fichiers temporaires sont supprimés et votre fichier sera marqué changé. Comme dans le 1, vous avez pour valider les modifications.

Notez que ceci ne supprime pas la révision de la révision de l'histoire dans le dépôt svn. Vous faites simplement une nouvelle révision de changements par rapport à la mauvaise révision sont supprimés.

29voto

Fernando Barrocal Points 3878

Vous avez deux choix pour cela.

Le Rapide et Sale est la sélection de vos fichiers (à l'aide de la touche ctrl) dans le Projet de l'affichage de l'Explorateur, faites un clic droit, choisissez Replace with... , et puis vous choisissez la meilleure option pour vous, à partir de Latest from Repository, ou quelques - Branch version. Après l'obtention de ces fichiers de les modifier (avec un espace, ou réparer quelque chose, votre appel et à s'engager à créer une nouvelle révision.

Plus propre est de choisir Merge au sein de l'équipe de menu et naviguer dans l'assistant qui vous aidera à la récupération de l'ancienne version dans la révision.

Les deux commandes ont leur de ligne de commande équivalents: svn revert et svn merge.

14voto

Matt Points 1447

Si vous souhaitez créer un fichier à la fois, vous pouvez accéder à la vue Historique pour le fichier en supposant qu'un plug-in Eclipse SVN soit installé. "Équipe-> Afficher l'historique"

Dans la vue Historique, recherchez la dernière bonne version de ce fichier, cliquez avec le bouton droit de la souris et choisissez "Obtenir le contenu". Cela remplacera votre version actuelle par le contenu de cette version. Vous pouvez ensuite valider les modifications lorsque vous avez tout réglé.

5voto

Mark Phippard Points 6498

J'ai écrit quelques articles de blog sur ce sujet. L'une centrée sur Subclipse: http://markphip.blogspot.com/2007/01/how-to-undo-commit-in-subversion.html et l'autre centrée sur la ligne de commande: http: //blogs.collab. net / subversion / 2007/07 / secondes chances /

5voto

Tuukka Mustonen Points 1906

Dans Eclipse en utilisant Subversive:

Faites un clic droit sur votre projet> Équipe> Fusionner

Dans la fenêtre de fusion, sélectionnez les révisions que vous voulez rétablir normalement mais cochez également la case "Fusion inversée".

Fusionner comme d'habitude.

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