La restauration de mauvais changements 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.
Vous devez vous connecter pour publier un commentaire.
Vous avez deux choix pour cela.
Rapide et Sale est la sélection de vos fichiers (à l'aide de ctrl) dans le Projet de l'affichage de l'Explorateur, faites un clic droit, choisissez
Replace with...
et ensuite que vous choisissez la meilleure option pour vous, à partir deLatest from Repository
, ou certainsBranch
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
à 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
etsvn merge
.Dans Eclipse Ganymede (Subclipse)
Sélectionnez le projet/le fichier contient mauvais changement, et de la pop-up menu choisir:
Équipe -> Afficher l'Historique
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 choisir:
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:
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.
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 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.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
Équipe Marquer Résolu
Les fichiers temporaires sont supprimés et votre fichier sera marqué changé. Comme dans le 1, vous avez pour valider les modifications.
Noter 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.
Si vous voulez faire 1 fichier à la fois, vous pouvez aller à la vue de l'Historique pour le fichier en supposant que vous avez une Eclipse, SVN du plugin installé. "L'équipe->Afficher l'Historique"
Dans l'Histoire de vue, trouver la dernière bonne version de ce fichier, cliquez droit et choisissez "Obtenir le Contenu". Cela permettra de remplacer votre version actuelle dans la version du contenu. Ensuite, vous pouvez valider les modifications lorsque vous avez résolu tous.
Dans Eclipse en utilisant Subversive:
Droit sur votre projet > Équipe > Fusionner
Dans la fenêtre de fusion, sélectionnez les révisions que vous voulez revenir comme normalement, mais également activer la case à cocher "Inversé fusion".
De fusion comme normalement.
J'ai écrit quelques posts sur ce sujet. Celui qui est Subclipse centrée sur: http://markphip.blogspot.com/2007/01/how-to-undo-commit-in-subversion.html et celui qui est en ligne de commande centrée sur: http://blogs.collab.net/subversion/2007/07/second-chances/
La svnbook a une section sur la façon de Subversion permet d'annuler les changements d'une révision particulière, sans affecter les changements qui se sont produits dans les révisions ultérieures:
http://svnbook.red-bean.com/en/1.4/svn.branchmerge.commonuses.html#svn.branchmerge.commonuses.undo
Je n'utilise pas Eclipse beaucoup, mais dans TortoiseSVN vous pouvez le faire à partir du à partir du journal de dialogue, cliquez simplement sur la révision que vous voulez supprimer et sélectionnez "annuler les changements de cette révision".
Dans le cas où les fichiers pour lesquels vous voulez revenir "mauvais modifications", de "bonnes changements" dans les révisions ultérieures, puis le processus est le même. Les modifications de la "mauvaise" révision reprend en laissant les changements de "bonne" révisions intacte, cependant, vous pourriez obtenir des conflits.
J'ai le même problème, mais le Nettoyage de l'éclipse option ne fonctionne pas pour moi.
1) installer TortoiseSVN
2) ouvrez l'explorateur windows et faites un clic droit sur votre répertoire de projet
3 Choix de l'option de Nettoyage (par la vérification de l'écluse de pause option)
Il fonctionne.
Espère que cela aide quelqu'un.