523 votes

Comment puis-je retourner à une version plus ancienne de notre code dans Subversion ?

Je travaille sur un projet avec un ami et je veux revenir à une ancienne version de notre code et configuré pour être au courant. Comment puis-je le faire ?

J’utilise « anksvn » sur vs08.

J’ai la version que je veux sur mon PC, mais la validation échoue ; Le message que je reçois est « validation a échoué, fichier ou le répertoire est obsolète ».

J’ai aussi le client subversion sur mon PC.

833voto

Jon Skeet Points 692016

Fondamentalement, vous devrez « fusionner vers l’arrière » - appliquer un diff entre la version actuelle et antérieure à la version actuelle (donc vous vous retrouvez avec une copie de travail ressemblant à l’ancienne version) et ensuite s’engager à nouveau. Donc par exemple passer de révision 150 (actuel) retour à la révision 140 :

Le livre rouge de Subversion a un bon article à ce sujet.

183voto

joeytwiddle Points 3226

La raison pour laquelle vous ne pouvez pas faire quoi que ce soit directement avec la bonne copie que vous avez sur votre PC, c'est que ses .svn dossiers sais que c'est le code à partir du passé, donc nécessite une mise à jour. Mais vous ne pouvez valider les changements à la tête de la subversion de l'histoire.

Vous pouvez utiliser

svn update -r <earlier_revision_number>

pour vérifier diverses anciennes versions de votre projet, jusqu'à trouver le bon numéro de révision, de votre bonne version. Lorsque vous l'avez trouvé, la mise à jour la plus récente (la tête) de révision, puis appliquer le svn merge comme suggéré ci-dessus.

Si vraiment vous ne pouvez pas le trouver, et le besoin de commettre le copier sur votre PC, puis obtenir une nouvelle mise à jour pour la dernière version, et la copie de votre "bonne" version sur le dessus de celui-ci (sans le .svn dossiers!). Supprimer tous les fichiers qui n'étaient pas dans la bonne copie des dossiers et de la subversion, et de commettre ce que vous avez maintenant.

36voto

M.Othman Points 824

Il suffit d’utiliser cette ligne

svn update - r yourOldRevesion

vous pouvez connaître votre révision en cours en utilisant

svn info

28voto

Bill Points 358

Le niveau moyen de l'utilisation de la fusion à l'annulation de la totalité de l'enregistrement fonctionne très bien, si c'est ce que vous voulez faire. Parfois, cependant, tout ce que vous voulez faire est de revenir à un seul fichier. Il n'y a aucun moyen légitime de le faire, mais il y a un hack:

  1. Trouver la version que vous souhaitez utiliser svn log.
  2. L'utilisation de svn export de la commande:

    svn export http://url-to-your-file@123 /tmp/fichier.

(Où 123 est le numéro de révision pour une bonne version du fichier.) Alors soit de déplacer ou de copier ce fichier unique pour remplacer l'ancien. Vérifier dans le fichier modifié et vous avez terminé.

9voto

Yauhen Yakimovich Points 2222

Un peu plus old school

puis l’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