2010-11-30 31 views
5

Disons que j'ai la situation suivante:façon la plus simple d'annuler un changement de fichier dans svn

myrepo/ 
    foo.txt 
    bar.txt 
    baz.txt 
    quux.txt 
    bingo.txt 

En rev 419, j'ai changé foo.txt, bar.txt et bingo.txt.

Maintenant, je découvre une erreur et je voudrais garder foo.txt de rev 418, mais laisser les changements dans bar.txt et bingo.txt de rev 419 intacte, donc je peux commettre rev 420 ainsi son foo.txt est le même que rév 418.

Comment puis-je faire cela avec un minimum de tracas?

Répondre

9

Voici comment, j'ai annulé les modifications d'un commit précédent.

La fusion inverse: svn --revision (version à rétablir) :(version ci-dessous) <. ou nom de fichier>

svn merge --revision 419:418 foo.txt 
svn commit -m "Reverting commit ver:419 for foo.txt" 
+1

Vous pouvez raccourci avec 'svn merge --change -419 foo.txt'. Un changement négatif, va inverser cette révision, rend plus facile à retenir à mon avis. –

+1

'-c -REV' (ou' --change -REV') simplifie un peu la syntaxe en ne demandant que la révision – bosmacs

+0

cool, merci, j'ai pensé que c'était une fusion mais je ne peux jamais garder ces choses droites. :/ –

2

Si vous utilisez TortiseSVN, vous pouvez faire un clic droit sur le fichier en question et cliquer sur "Afficher le journal". Dans le journal de validation, recherchez la révision du fichier que vous voulez restaurer, cliquez avec le bouton droit sur le fichier et cliquez sur "Annuler les modifications de cette révision". Puis validez le changement à votre branche.

enter image description here