Annulation d'un commit dans TortoiseSVN

99

J'ai commis un tas de fichiers (des dizaines de fichiers dans différents dossiers) par accident. Quelle est la manière la plus simple, la plus propre (et la plus sûre!) D'annuler cette validation sans avoir à supprimer les fichiers de mon répertoire de travail?

Manu
la source

Réponses:

151

Allez à Afficher l' écran du journal , sélectionnez la révision que vous souhaitez annuler, cliquez dessus avec le bouton droit de la souris et sélectionnez Annuler les modifications de cette révision , cela fera une fusion inverse .

CMS
la source
8
C'est ce à quoi je m'attendais mais aucun signe dans la dernière version de Tortoise
Anthony Main
39
N'oubliez pas de vous engager par la suite, car il fusionne simplement localement.
pihentagy
5
Assurez-vous de mettre à jour votre copie de travail avant de faire cela, sinon rien ne se passe.
Florian Brucker
1
Docs sur cette procédure: tortoisesvn.net/docs/release/TortoiseSVN_en/...
Costa
TortoiseSVN> Afficher le journal> <sélectionnez votre ancienne révision>> Revenir à cette révision tortoisesvn.net/docs/nightly/TortoiseSVN_en/...
Satyendra
15

Vous devrez peut-être utiliser la ligne de commande, mais vous pouvez utiliser la commande SVN merge et spécifier les révisions en sens inverse pour annuler efficacement une validation. En supposant que votre mauvais commit était r1123, vous feriez:

svn merge -r1123:1122 <url of your working copy>
jcoby
la source
Rien ne change quand je fais comme ceci: svn merge -r 1880: 1879 server / myproject / branches / problem42 J'ai essayé les deux avec un espace comme celui-ci "-r 1880: 1879" et sans espace comme celui-ci "-r1880: 1879". Si j'exécute "svn st" par la suite, rien n'a changé.
neoneye
2

Vous pouvez rétablir votre copie de travail à la révision antérieure à la validation. Une fois que vous avez rétabli votre copie de travail, validez simplement les modifications et vous annulerez efficacement la validation accidentelle.

Dans un cas comme le vôtre en particulier, je vérifierais probablement la révision que je voulais restaurer dans une nouvelle copie de travail, puis je commettrais la copie de travail dans la révision principale.

Noah Goodrich
la source
4
Cela ne vous dirait-il pas que votre révision est obsolète et vous oblige à mettre à jour avant de vous engager? Je pense que vous devez fusionner la révision précédente plutôt que simplement mettre à jour l'ancienne.
Mnebuerquo
De plus, cette stratégie suppose que le mauvais commit est le précédent. Vous voudrez peut-être annuler certaines modifications qui se sont produites il y a quelque temps, sans les annuler toutes.
jpaugh