Cela fait un moment que je travaille sur le même projet en faisant des branches, des tags... Je fais des "commit" réguliers. Et tout à coup, arrivant à la révision 2347 je me suis apperçu que j'avais introduit, par mégarde, un nouveau bug qui n'était pas présent à la révision 2346.
La question qui est sur toutes les lèvres: comment revenir facilement à la révision précédente ? Et bien rien de plus simple, il suffit de taper la commande suivante:
svn merge -r2347:2346 URL .
Deux remarques:
- c'est bien la commande merge qu'il faut utiliser; c'est clairement écrit dans la documentation.
- je ne me suis pas trompé; les numéros de révisions sont dans l'ordre décroissant contrairement à un merge "classique". Mais en y réfléchissant bien, c'est logique, on veut bien passer de la révision 2347 à la révision 2346
Il ne reste plus qu'à faire un commit.
1 De Pierrick -
Pour être un peu plus précis, tu ne veux pas repasser à la révision 2346, tu veux passer à la révision 2348, résultat de l'annulation de modifications apportée entre la révision 2346 et 2347.
Dit ainsi, on comprend qu'on peut aussi annuler les modifications survenues entre les révisions 2345 et 2349 sur la révision 2349 pour créer la révision 2350 :
$ svn merge -r2349:2345
Subversion permet facilement d'annuler des commits anciens. A condition que les lignes impliquées dans ces commits ne soient pas nécessaires aux commits post 2349.
2 De Nicolas -
Merci Pierrick pour ces précisions. p.s: je me suis permis de corriger ton message où tu t'étais un peu embrouillé dans les numéros de révisions (234? remplacé par des 134?)