Come posso ripristinare tutto o parte di un commit su svn?
-
03-07-2019 - |
Domanda
Come posso ripristinare in tutto o in parte un commit SVN usando TortoiseSVN?
Soluzione
Innanzitutto, devi identificare piuttosto che desideri ripristinare " tutte le modifiche " di una revisione o solo un singolo file. TortoiseSVN ha solo " 1 o tutto " approccio; ciò significa che è possibile ripristinare l'intero set di check-in o singoli file: non check-in parziali.
Intero changeset
Quindi, se si ripristina una revisione specifica (e si desidera modificare tutti i file in quel gruppo di modifiche), si vorrà fare clic con il tasto destro del mouse - > TortoiseSVN - > Mostra registro. Trova la revisione / il set di modifiche a cui desideri eseguire il rollback, fai clic con il pulsante destro del mouse su quella revisione "Ripristina questa revisione".
C'è un'altra opzione che potrebbe interessarti, che è "Ripristina modifiche da questa revisione", che farà una fusione Diss tra quella revisione e la tua versione attuale e unirà solo le differenze. Lo trovo più attraente a volte; così, posso mantenere tutte le modifiche tra i changeset.
File singolo
L'altra opzione è di ripristinare un singolo file. Faresti di nuovo clic con il tasto destro - > TortoiseSVN - > Mostra registro; ma questa volta, puoi selezionare un singolo file.
TortoiseSVN non consente di selezionare più file in un changeset a cui tornare. O è tutto, o solo 1.
Check-in per il changeset
Per tutte le altre letture, assicurati di " checkin " coinvolgono solo i file relativi a tale modifica. Questa dovrebbe essere una pratica comune in questi giorni; ma trovo ancora gli sviluppatori "shotgunning" i check-in alla fine della giornata, raggruppando tutte le modifiche del giorno in un unico check-in.
Brilla di quegli sviluppatori con w strabismo. -_ ^
Altri suggerimenti
Se si desidera ripristinare il commit (revisione) precedentemente effettuato:
Con explorer:
- Fai clic con il pulsante destro del mouse sul file / cartella che desideri ripristinare,
- TortoiseSVN- > show log,
- fai clic con il pulsante destro del mouse su revisione indesiderata,
- " ripristina modifiche da questa revisione " ;,
- Commitee >. OK
Se desideri annullare le modifiche apportate localmente (non vincolate)
Con explorer: fai clic con il pulsante destro del mouse su file, TortoiseSVN- > Revert.
in alternativa a ciò che Bartek ha detto, puoi fare il checkout di una particolare revisione in una copia di lavoro locale e riportarla alla testa.
Nota che puoi solo " ripristinare " nel senso che controlli una nuova revisione, che non contiene più le modifiche che desideri ripristinare. Questo è descritto nelle altre risposte.
Puoi non annullare effettivamente un check-in (come in "non è mai successo"), il vecchio stato sarà ancora nella cronologia del repository.
Annullare / rimuovere davvero cose è una richiesta di funzionalità di vecchia data: