2009-07-26 8 views
3

D'abord, j'ai utilisé "update to revision" pour mettre à jour un de mes répertoires à une ancienne révision car nous devions annuler certaines modifications.Subversion - Comment valider? J'ai d'abord mis à jour un de mes répertoires de projet à une révision précédente

Cependant, quand je vais commettre maintenant, il est dit que les éléments de mon projet sont obsolètes et que je devrais essayer de mettre à jour.

Cependant, je ne veux vraiment pas que mes fichiers actuels soient remplacés par des fichiers "plus récents" dans la révision.

Je voudrais que cet engagement prenne de l'avance et soit la révision de tête.

Des conseils?

Merci

Répondre

5

Qu'est-ce que vous voulez faire est appelé une « fusion inversée ». Mettez à jour votre copie de travail à la tête, puis effectuez une fusion inverse à la révision que vous désirez. Il ya une section dans le livre SVN à ce sujet here, sous la section "Annuler les modifications".

Par exemple, si vous êtes à la révision 412, mais vous souhaitez sauvegarder le contenu de la révision 410, utilisez quelque chose comme ce qui suit:

svn merge -r 412:410 http://yourrepository/trunk 

Cela obtenir votre copie de travail pour refléter l'état à 410, puis vous pouvez faire un commit.

+0

Merci pour l'info! Maintenant, je sais comment annuler les changements. Une idée de comment sortir de ma situation actuelle? (Cela a résulté de moi faisant une "mise à jour à la révision") J'ai depuis mis dans quelques heures sur le projet dans cet état "renversé". –

+0

Essayez 'svn diff> changes.diff' dans un fichier, puis mettez à jour, reverse merge, et' patch -p 0 -i changes.diff' –

+0

Merci pour l'information Anton. Je suis sûr que cela aurait bien fonctionné ... cependant, je n'ai aucune expérience avec les commandes subversion directes. J'ai trouvé une solution plutôt ennuyeuse à mon problème. En utilisant Tortoise SVN, je suis allé de l'avant et mis à jour l'ensemble du répertoire en question résultant en de nombreux fichiers en conflit. Je suis allé à "Modifier les conflits" sur chaque fichier et lui ai dit d'utiliser "Mine" dans chaque cas. J'ai ensuite fait un clic droit sur chaque fichier et les ai marqués comme résolus. Ensuite, j'ai commis chaque fichier. Ce n'est pas la solution la plus élégante, mais le travail a été fait pour moi. Merci pour toute l'aide! –

Questions connexes