Annullare un commit in TortoiseSVN


99

Ho eseguito il commit di un mucchio di file (dozzine di file in cartelle diverse) per errore. Qual è il modo più semplice, pulito (e sicuro!) Per "annullare" il commit senza dover eliminare i file dalla mia directory di lavoro?

Risposte:


151

Vai a Mostra schermata registro , seleziona la revisione che desideri annullare, fai clic con il pulsante destro del mouse e seleziona Annulla modifiche da questa revisione , questo eseguirà un'unione inversa .


8
Questo è quello che mi aspettavo, ma nessun segno nell'ultima versione di tartaruga
Anthony Main

39
Non dimenticare di eseguire il commit in seguito, perché si fonde solo localmente.
pihentagy

5
Assicurati di aggiornare la tua copia di lavoro prima di farlo, altrimenti non succede nulla.
Florian Brucker

1
Documenti su questa procedura: tortoisesvn.net/docs/release/TortoiseSVN_en/…
Costa

TortoiseSVN> Mostra registro> <seleziona la tua vecchia revisione>> Torna a questa revisione tortoisesvn.net/docs/nightly/TortoiseSVN_en/…
Satyendra

15

Potrebbe essere necessario utilizzare la riga di comando, ma è possibile utilizzare il comando SVN merge e specificare le revisioni al contrario per ripristinare efficacemente un commit. Supponendo che il tuo bad commit fosse r1123, faresti:

svn merge -r1123:1122 <url of your working copy>

Non cambia nulla quando faccio questo: svn merge -r 1880: 1879 server / mioprogetto / branch / problem42 Ho provato sia con spazio come questo "-r 1880: 1879" e senza spazio come questo "-r1880: 1879". Se in seguito eseguo "svn st" non è cambiato nulla.
neoneye

2

È possibile ripristinare la copia di lavoro alla revisione precedente al commit. Dopo aver ripristinato la copia di lavoro, è sufficiente eseguire il commit delle modifiche e verrà effettivamente ripristinato il commit accidentale.

In un caso come il tuo in particolare, probabilmente controllerei la revisione che volevo ripristinare in una nuova copia di lavoro e quindi invierei la copia di lavoro alla revisione principale.


4
Questo non ti direbbe che la tua revisione è obsoleta e ti richiede di aggiornarla prima di impegnarti? Penso che sia necessario unire la revisione precedente piuttosto che aggiornarla semplicemente a quella vecchia.
Mnebuerquo

Inoltre, questa strategia presume che il bad commit sia il precedente. Potresti voler annullare alcune modifiche avvenute qualche tempo fa, senza annullarle tutte.
jpaugh
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.