Retourne un dossier svn à une révision précédente

Pour restaurer 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 difficile pour ce qui devrait être un cas d’utilisation assez commun. Je dois le faire mal. Comment pouvez-vous le faire autrement?

Pourquoi ne pas utiliser svn merge ?

En supposant que vous souhaitiez 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 tous les conflits manuellement (il ne devrait y avoir rien s’il n’y a pas de changement local) et:

 svn commit -m "- reverted to revision 268" 

Pour annuler un changement unique (par exemple, effectué 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 . 

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

Pourquoi ne pas utiliser ‘svn merge’? C’est pourquoi: “Ensuite, résolvez tous les conflits manuellement [..]”

Si je sais que «folder» à la révision 268 contient les données cohérentes que je voudrais continuer, pourquoi créer automatiquement une fusion avec des données potentiellement incohérentes uniquement pour supprimer manuellement ces modifications ultérieurement. Il est sujet aux erreurs et va à l’encontre du but de mon outil de gestion de la configuration.

Je préférerais la recette de la demande initiale avec une amélioration mineure. Si vous utilisez ‘svn export’ pour obtenir l’ancienne révision, vous n’avez pas à supprimer les 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 

vous pouvez aussi utiliser

 svn revert folder/* 

qui va retourner tout le fichier sous le folder