2010-09-27 35 views
8

ho erroneamente commesso il resto sbagliato in un file, per amore di un esempio semplificato chiamiamolo foo.txt:svn: ritorno alla precedente versione

pippo.txt, Rev 300 (corretto):

E = mc^2 

pippo.txt, rev 301 (errato):

E = mc^3 

Come si ri-commit rev 300 al prossimo commit? Se aggiorno foo.txt a rev 300, ottengo il file giusto ma il suo stato è corretto & non richiede il commit.

NOTA: È solo foo.txt che voglio ripristinare. Le altre revisioni del rev 301 sono importanti e ho bisogno di mantenerle.

+2

possibile duplicato di [modo migliore per tornare a una precedente revisione SVN di un file?] (Http://stackoverflow.com/questions/345997/better-way-to-revert-to-a-previous -svn-revision-of-a-file) –

+0

Quello non sembra funzionare per me; o è diverso o sto facendo qualcosa di sbagliato. –

+0

oh aspetta, mi sono perso il "-" prima del rev #. Sì, è un duplicato. –

risposta

15
svn merge -r301:300 foo.txt 
svn commit -m 'revert foo.txt to 300' 
2
svn merge -c-301 . 
svn commit -m "Reverting commit 301" 
+0

Non dovresti annullare comunque r301? e penso che sia un 'minuscolo' -c' –

+0

Sander: Vero, corretto :) – harald

9

Se si utilizza TortoiseSVN, questo è sorprendentemente facile. Basta visualizzare il registro per quel file, fare clic con il tasto destro sulla revisione 300 e selezionare ripristinare questa revisione (questa è un'operazione locale). Quindi è possibile memorizzare il file locale come 302.

Se lo si è verificato qualche tempo fa, è possibile selezionare annullare le modifiche da questa revisione. Ciò ripristinerà solo le modifiche che si sono verificate con quel check in (lo eseguiresti su 301).

+0

No, ci ho provato. Mi consente di ripristinare la revisione ma non contrassegna il file come sporco. –

+0

Dovrebbe funzionare, avere cura di scegliere "ripristina" non "aggiornamento". A volte le icone di sovrapposizione non mostrano lo stato reale. In "commit" dovresti vedere il file come sporco nell'elenco. – jdehaan

+1

@ Jason: Dispari. L'ultima volta che ho dovuto annullare una revisione, ho fatto esattamente quello che JoshD ha detto e ha funzionato bene. –

Problemi correlati