29 votes

Rétablir un dossier svn vers une révision précédente

Pour rétablir un dossier particulier dans SVN à son état précédent, j'utilise actuellement ce qui suit:

 svn rm folder
svn commit -m 'removed folder to revert to previous version'
svn co http://pathto/repo/folder@268
cd folder
rm -rf .svn //recursively if many folders
svn add folder
svn commit -am 'reverted to the previous version'
 

Semble trop de problèmes pour ce qui devrait être un cas d'utilisation assez courant. Je dois le faire mal. Sinon, comment pouvez-vous le faire?

60voto

Jacek Konieczny Points 4002

Pourquoi ne pas utiliser 'svn merge'?

En supposant que vous souhaitez revenir de la version actuelle de HEAD (dernière validation) à la révision 268:

 cd folder
svn up
svn merge -r HEAD:268 .
 

Ensuite, résolvez les conflits manuellement (il ne devrait rien y avoir s'il n'y a pas de changement local) et:

 svn commit "- reverted to revision 268"
 

Pour annuler une modification unique (par exemple, effectuée dans la révision 666):

 cd folder
svn merge -c -666 .
 

Pour annuler les modifications locales (pas encore validées):

 cd folder
svn revert -R .
 

1voto

Thomas Schaub Points 299

Vous pouvez utiliser svn merge pour cette tâche, voir http://svnbook.red-bean.com/en/1.1/ch04s04.html#svn-ch-4-sect-4.2 pour un exemple

1voto

user2451680 Points 11

Pourquoi ne pas utiliser svn merge"? C'est pourquoi: "Ensuite, résoudre les conflits manuellement[..]"

Si je connais un "dossier" à la révision 268 contient les données cohérentes je voudrais aller avec, pourquoi créer automatiquement une fusion avec potentiellement des données incohérentes seulement supprimer manuellement ces changements plus tard. C'est source d'erreurs et de défaites le but de mon outil de gestion de configuration.

I. e. Je préfère la recette de la demande originale avec une légère amélioration. Si vous utilisez svn export " pour obtenir de l'ancienne version, vous n'avez pas à supprimer .fichiers svn:

svn rm folder
svn commit -m 'removed folder to revert to previous version' .
svn export -r 268 http://pathto/repo/folder
svn add folder
svn commit -m 'reverted to the previous version' folder

0voto

Sheetal T Points 10

vous pouvez également utiliser

 svn revert folder/*
 

qui rétablira tout le fichier sous folder

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