Qual è la differenza tra "Rollback ..." e "Back Out Changelist inviato #####" in Perforce P4V


198

Voglio annullare le modifiche da uno dei miei check-in. Nel menu contestuale del tasto destro del particolare elenco modifiche, sono disponibili queste due opzioni:

  • Ripristino ...
  • Elenco delle modifiche inviato indietro

Qual è la differenza tra questi due? In quali situazioni dovrei usare una delle due?


3
In questo caso, "Elenco modifiche inviate indietro" era l'opzione giusta per la mia situazione (volevo solo ripristinare le modifiche dal check-in). Grazie per le ottime risposte.
Dave Andersen,

Risposte:


222

Entrambe queste operazioni ripristinano una serie di file su uno stato precedente e sono essenzialmente modi più veloci e sicuri per annullare gli errori rispetto all'uso del p4 obliteratecomando (e non è necessario l'accesso come amministratore per utilizzarli).

Nel caso di "Rollback ...", potrebbe trattarsi di un numero qualsiasi di file, persino di un intero deposito. Puoi dire di eseguire il rollback a una revisione, un elenco modifiche o un'etichetta specifici. I file vengono ripristinati allo stato in cui si trovavano al momento della creazione di tale revisione, elenco modifiche o etichetta.

Nel caso di "Elenco modifiche inviate indietro #####", l'operazione di ripristino è limitata ai file inviati nell'elenco modifiche #####. Tali file vengono ripristinati nello stato in cui si trovavano prima che tu inviassi l'elenco modifiche, a condizione che da allora non siano state apportate modifiche a tali file. Se sono state apportate modifiche successive a uno di questi file, Perforce ti informerà che tali file non sono più aggiornati. Dovrai sincronizzarti con la revisione principale e quindi risolvere le differenze. In questo modo non occludere inavvertitamente eventuali modifiche che si desidera effettivamente mantenere.

Entrambe le operazioni funzionano essenzialmente inviando vecchie revisioni come nuove revisioni. Quando esegui un "Rollback ...", ripristini i file nello stato in cui si trovavano in un determinato momento , indipendentemente da ciò che è accaduto da allora. Quando si esegue un "Indietro ...", si sta tentando di annullare le modifiche apportate in un determinato momento , mantenendo le modifiche che si sono verificate da allora.


18
Penso che " Elenco modifiche inviate indietro #####" proverà a mantenere le modifiche apportate agli stessi file dopo l'elenco di modifiche specificato.
Ian Ringrose,

1
@Ian: buona osservazione. Quando ho scritto questo, pensavo di correggere immediatamente un errore. Come di solito, se ti rendi conto che vuoi annullare qualcosa molto più tardi , diventa più complicato. Ho perfezionato la mia risposta.
corvo,

@IanRingrose Ho appena eseguito un'operazione di "backout" e sembra che non tenti di mantenere le modifiche apportate in seguito. Ho dovuto eseguire una sincronizzazione e quindi risolvere il problema per ottenere le modifiche in cui sono state inviate dopo il backout.
gdw2,

@ gdw2, penso che se avessi fatto un "Rollback" non avresti avuto l'opzione di "risolvere per riavere le modifiche in cui sono state inviate dopo il ..."
Ian Ringrose,

1
Sebbene i file vengano ripristinati allo stato in cui si trovavano, i metadati non lo sono. Cercare di ripristinare un'integrazione da un altro ramo non ti consentirà di eseguire nuovamente tale integrazione perché i metadati dicono che è già integrato.
Will Brode,

17

Invertire una presentazione dell'elenco modifiche

Non è possibile annullare una presentazione dell'elenco modifiche riuscita, ma è possibile annullare le modifiche precedentemente inviate in due modi:

Il rollback ripristina un file o un set di file su un elenco modifiche, una data o una revisione specificati. Eventuali modifiche apportate dopo tale momento non vengono mantenute. Il back-out rimuove le modifiche specifiche apportate a un determinato elenco di modifiche, data o revisione, ma consente all'utente di mantenere le modifiche apportate nelle revisioni successive.

Per i dettagli, consultare https://www.perforce.com/perforce/r13.1/manuals/p4v/Working_with_changelists.html


8

Il backout ripristina o annulla le nostre modifiche. In questo modo, P4 annulla le modifiche in un elenco modifiche (predefinito o nuovo) sul nostro spazio di lavoro locale. Dobbiamo quindi inviare / eseguire il commit di questa lista di modifiche di backup mentre facciamo altre liste di modifiche. La seconda parte è importante qui, poiché non esegue automaticamente il backup dell'elenco modifiche sul server, dobbiamo inviare l'elenco modifiche di backup (che ha senso dopo averlo fatto, ma inizialmente pensavo che lo facesse automaticamente).

Come sottolineato da altri, il rollback ha maggiori poteri: può ripristinare le modifiche a una data, a un elenco delle modifiche o a una revisione specifici #


4

Rollback ... ti chiederà di selezionare una cartella per il rollback, cioè funzionerà su cartelle specifiche e potrai tornare alle etichette o ai listini o alle date. Back out funziona sui file in elenchi di modifiche specifici.


4

Spiego questo agli utenti confrontando l'elenco delle modifiche di Perforce con uno stack (dalle strutture di dati).

L'arretramento rimuove un oggetto da qualsiasi punto della pila.

Il rollback rimuove n oggetti dalla parte superiore della pila.


0

Nella sua forma più semplice, la differenza è di pluralità:

  • Il backout esce da un unico elenco di modifiche (sia il più recente o meno). cioè annulla un singolo elenco di modifiche.
  • Il rollback esegue il rollback delle modifiche tanto quanto è necessario per poter accedere a un precedente elenco di modifiche. cioè annulla più liste di modifiche.

Prima dimenticavo quale fosse e finivo per cercarlo molte volte. Per risolvere questo problema, immagina di tornare indietro come diverse rotazioni, quindi spero che il fatto che il rollback sia plurale ti aiuterà (e io!) A ricordare quale è quale. Il backout suona "meno plurale" del rollback per me. Immagina di ritirarti da un singolo parcheggio.

Quindi, il mnemonico è:

  • Rollback → rotazioni multiple
  • Backout → indietro da un unico posto auto

Spero che aiuti!

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.