2010-08-27 15 views
7

Situation: Ho un repository SVN con diciamo 100 revisioni, rev. 100 è il più recente. Ho apportato alcune modifiche al rev. 90 che devono essere ripristinati ora. Le modifiche al rev. 90 sono autonomi, in modo che non influenzino le successive revisioni.SVN: Annulla le modifiche di una revisione casuale, ma conserva le modifiche di tutte le seguenti

Problem: Vorrei ripristinare solo le modifiche in rev. 90, ma voglio comunque avere tutti i cambiamenti di tutte le revisioni successive nella mia revisione principale.

Question:Esiste una funzione in SVN per ripristinare solo le modifiche di una revisione casuale?

+0

Molto probabilmente un duplicato di: http://stackoverflow.com/questions/13330011/how-to-revert-an-svn-commit –

risposta

12

È necessario eseguire un'unione inversa, ovvero un'unione con l'intervallo rev:rev-1. Per esempio sulla riga di comando, se ci si trova nella directory di lavoro:

`svn merge -r 90:89 .` 

In TortoiseSVN, a quanto pare è necessario immettere 90 per gamma Revisione di fondere e controllare il fusione inversa casella di controllo nella Merge dialog (Non ce l'ho, quindi non posso confermare).

+1

La sintassi alternativa (probabilmente più semplice) per il ripristino di una singola revisione è: 'svn merge -c -90. ' –

4

Con TortoiseSVN aprire il registro e trovare la revisione che si desidera ripristinare. Fai clic con il tasto destro del mouse sulla linea e seleziona "Annulla modifiche da questa revisione". Ciò apporta modifiche locali alla tua copia di lavoro, che annullerà quella revisione.

+0

Funziona solo su Windows. Io uso RapidSVN, l'alternativa a Tortoise per Linux e non ha questa funzionalità. –

Problemi correlati