2009-07-18 8 views
4

double: How do I roll back all or part of a commit to svn?Comment continuer à travailler une vieille révision subversion lorsque vous avez oublié de faire une nouvelle branche


J'ai mis en place un compte à http://www.projectlocker.com/ pour un de mes projets. Je suis la seule personne à y travailler, mais je me suis dit que le suivi des versions serait toujours utile, et que c'est une bonne expérience d'apprentissage. J'ai configuré le dossier standard structurel avec/trunk /,/branches /,/tags /. Donc, disons que vous travaillez sur le coffre et réalisez que vous avez vraiment dérangé quelques choses, mais vous voulez revenir en arrière quelques révisions et continuer à partir de là. Je peux mettre à jour à une révision précédente et commencer à faire des changements, mais le serveur ne me permettra pas de commettre à moins que je mette à jour à partir de la dernière révision qui apportera également tous les changements non désirés. Alors, comment puis-je revenir à une révision précédente et ensuite continuer à travailler sur le coffre à partir de là? Dois-je en quelque sorte fusionner une ancienne révision dans la dernière révision? J'utilise le plugin AnkhSVN pour le studio visuel, donc j'apprécierais et je répondrais qui explique comment le faire dans ce client, mais je suis sûr que je peux comprendre les clics réels d'une réponse plus conceptuelle.

Répondre

11

Je ne me AnkhSVN, donc je ne sais pas maintenant exactement ce que vous clics de besoin, mais il est une tâche assez dans TortoiseSVN et commandline:

Vous vient d'annuler toutes les modifications en appliquant une fusion inverse. Habituellement, cela se fait en tortue par:

  • montrant le journal de votre copie de travail
  • sélectionner la révision à laquelle vous voulez inverser la fusion
  • appuyez sur le bouton droit de la souris et sélectionnez « revenir à cette révision »
  • commettras la nouvelle révision (qui est exaclty identique à la précédente rev choisie.)

Sur Commandline vous devriez faire ceci:

svn merge -r 120:100 http://svn.example.com/<path_to_your_repo> 

Cela annule toute révision 101-120 vous laissant avec la même chose que Rev 100

0

Je ne sais pas si elle répond à votre question, mais vous pouvez simplement créer une branche en fonction de cette ancienne révision.

Avec AnkhSVN la meilleure façon de le faire est la suivante:

  • Faites un clic droit sur la solution
  • Subversion -> Branch Solution
  • Vérifiez si l'URL est l'URL que vous souhaitez branche (par exemple'^/tronc') (^)
  • Choisissez: Version Sepecific et tapez (ou parcourez) la version que vous souhaitez utiliser.
  • Tapez un message de journal
  • Cochez la case « Passer à la Direction générale après la création » case à cocher en bas
  • Et puis OK

(^) Si l'URL n'est pas ce que vous attendiez, vous devriez corrigez l'URL de liaison de la solution dans Fichier -> Subversion -> Modifier le contrôle de code source. Normalement, il devrait être la racine logique du projet.

Questions connexes