Domanda

Come posso ripristinare in tutto o in parte un commit SVN usando TortoiseSVN?

È stato utile?

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:

  1. Fai clic con il pulsante destro del mouse sul file / cartella che desideri ripristinare,
  2. TortoiseSVN- > show log,
  3. fai clic con il pulsante destro del mouse su revisione indesiderata,
  4. " ripristina modifiche da questa revisione " ;,
  5. 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:

http://subversion.tigris.org/issues/show_bug.cgi ? id = 516

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top