2011-10-11 11 views
7

Se osservo il registro Subversion in TortoiseSVNtornando con tortoisesvn

enter image description here

Quando seleziono una revisione e fare clic destro, vedo le seguenti opzioni (tra gli altri):

  • Aggiorna articolo a revisione
  • Ripristina questa revisione
  • Annulla modifiche da questa revisione

Qualcuno può spiegare quali sono le differenze tra questi 3?

Quello che in realtà voglio fare è temporaneamente ripristinare la mia copia di lavoro indietro alla versione selezionata del repository. Quale di queste opzioni dovrei scegliere?

+0

Che cos'è "ripristino temporaneo"? per quale attività commerciale? –

risposta

12

Dovresti scegliere la seconda opzione.

Ecco cosa si ottiene quando si fa clic sul pulsante Guida in questa finestra di dialogo: voce

Update per revisione

aggiornare la copia di lavoro alla revisione selezionata . Utile se vuoi che la tua copia di lavoro rifletta un'ora in passato, o se ci sono stati ulteriori commit al repository e vuoi aggiornare la tua copia di lavoro un passo alla volta. È il migliore per aggiornare un'intera directory nella tua copia di lavoro, non solo un file , altrimenti la tua copia di lavoro potrebbe essere incoerente.

Se si desidera annullare definitivamente una modifica precedente, utilizzare invece Ripristina questa revisione .

Ripristina a questa revisione

Ripristina una revisione precedente. Se hai modificato e poi decidi che vuoi davvero tornare indietro a come erano in revisione N, questo è il comando che ti serve. Le modifiche di vengono annullate nella copia di lavoro, pertanto questa operazione non ha effetto su fino a quando non si confermano le modifiche. Si noti che questo annullerà tutte le modifiche apportate dopo la revisione selezionata, sostituendo il file/cartella con la versione precedente.

Se la copia di lavoro è in uno stato non modificato, dopo aver eseguito questa azione la copia di lavoro verrà visualizzata come modificata. Se hai già modifiche locali a , questo comando unirà le modifiche di annullamento nella tua copia di lavoro .

Ciò che accade internamente è che Subversion esegue una fusione inversa di tutte le modifiche apportate dopo la revisione selezionata, annullando l'effetto di quelle precedenti.

Se dopo l'esecuzione di questa azione si decide che si desidera annullare la annullamento e ottenere la vostra copia di lavoro al suo precedente stato non modificato, si dovrebbe usare TortoiseSVN → Ripristina da Esplora risorse, che annullare le modifiche locali fatto da questa operazione di unione inversa .

Se si desidera semplicemente visualizzare l'aspetto di un file o di una cartella in una revisione precedente di , utilizzare invece Aggiorna per revisione o Salva revisione come ... .

annullare le modifiche da questa revisione

Annulla cambia da cui sono state fatte nel la revisione selezionata. Le modifiche vengono annullate nella tua copia di lavoro, quindi questa operazione non ha alcun effetto sul repository! Si noti che questo annullerà le modifiche apportate solo in quella revisione; non sostituisce la copia di lavoro con l'intero file nella revisione precedente. Questo è molto utile per annullare una modifica precedente quando sono state apportate altre modifichenon correlate.

Se la copia di lavoro è in uno stato non modificato, dopo aver eseguito questa azione la copia di lavoro verrà visualizzata come modificata. Se hai già modifiche locali a , questo comando unirà le modifiche di annullamento nella tua copia di lavoro .

Che cosa sta succedendo internamente è che Subversion esegue un'inversione unione di quella revisione, annullando il suo effetto da un commit precedente.

È possibile annullare l'annullamento come descritto sopra in Ripristina a questa revisione.

+0

Il ripristino temporaneo può avere un significato diverso! Non assumere al posto dell'utente !!! –

+0

Don ha chiesto quali sono le ** differenze ** tra le tre. Il tuo post descrive solo quali sono le 3 opzioni, ma è molto difficile dire quali sono le differenze effettive (specialmente per coloro che non sono esperti in inglese). Tutto quello che ho capito dal tuo post è che alla fine della giornata finirai con la stessa copia di lavoro indipendentemente dall'opzione che hai scelto. Qui: http://stackoverflow.com/questions/1214939/update-item-to-revision-vs-revert-to-revision Peter Parker spiega che la differenza ** effettiva ** è compresa tra _update a revision_ e _revert a this revision_ – Nolonar