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.