Comando Rollback (Controllo della versione di Team Foundation)
È possibile utilizzare questo comando per eseguire il rollback degli effetti di uno o più insiemi di modifiche su uno o più elementi inclusi nel controllo della versione. Questo comando non rimuove gli insiemi di modifiche dalla cronologia delle versioni di un elemento. Questo comando crea invece nell'area di lavoro un set di modifiche in sospeso che negano gli effetti degli insiemi di modifiche specificati.
Autorizzazioni necessarie
Per utilizzare questo comando, è necessario che le autorizzazioni Lettura, Estrai, e Archivia siano impostate su Consenti. Per ulteriori informazioni, vedere Autorizzazioni per Team Foundation Server.
tf rollback /toversion:VersionSpec ItemSpec [/recursive] [/lock:none|checkin|checkout] [/version:versionspec] [/keepmergehistory] [/login:username,[password]] [/noprompt]
tf rollback /changeset:ChangesetFrom~ChangesetTo [ItemSpec] [/recursive] [/lock:none|checkin|checkout] [/version:VersionSpec]
[/keepmergehistory] [/noprompt] [/login:username,[password]]
Parametri
Argomento |
Oggetto di descrizione |
---|---|
ChangesetFrom~ChangesetTo |
Utilizzare questo argomento con l'opzione /changeset per specificare i set di modifiche di cui si desidera eseguire il rollback. È possibile specificare l'insieme di modifiche in uno dei seguenti modi:
|
ItemSpec |
Utilizzare questo argomento per specificare uno o più elementi di cui si desidera eseguire il rollback. Se si utilizza l'opzione /toversion, è necessario specificare questo argomento. Per ulteriori informazioni su come Team Foundation analizza le specifiche degli elementi, vedere Sintassi della riga di comando (controllo della versione).
Nota
È possibile specificare più di un argomento Itemspec.
|
VersionSpec |
Valore fornito dall'utente per le opzioni /version e /toversion. Utilizzare questo argomento con l'opzione /toversion per ripristinare un file al suo stato in un set di modifiche specifico. È possibile specificare la versione in uno dei seguenti modi:
Per ulteriori informazioni su come Team Foundation analizza gli oggetti versionspec, vedere Sintassi della riga di comando (controllo della versione). |
Opzione |
Oggetto di descrizione |
---|---|
/changeset |
Utilizzare questo argomento per specificare uno o più elementi di cui si desidera annullare le modifiche. |
/keepmergehistory |
Questa opzione ha effetto solo se uno o più insiemi di modifiche dei quali si esegue il rollback includono una modifica branch o merge. Specificare questa opzione se si desidera effettuare unioni future tra lo stesso database di origine e lo stesso database di destinazione per escludere le modifiche delle quali si esegue il rollback. Per ulteriori informazioni, vedere Esempio: l'opzione /keepmergehistory. |
/lock |
Specificare questa opzione per impedire ad altri utenti di archiviare o estrarre elementi fino a quando il rollback di tutte le modifiche associate non è stato completato. Per ulteriori informazioni, vedere Informazioni sui tipi di blocco. Opzioni di blocco
|
/login |
Per informazioni su questa opzione, vedere Opzioni della riga di comando. |
/noprompt |
Disattiva la visualizzazione delle finestre di dialogo che verrebbero altrimenti visualizzate durante questa operazione. |
/recursive |
Specificare questa opzione se si desidera che l'operazione includa elementi nelle sottocartelle. |
/toversion |
Specificare questa opzione per ripristinare un file al suo stato in un insieme di modifiche specifico. Quando si utilizza questa opzione, si nega l'effetto di tutti i set di modifiche applicate dalla versione specificata. |
/version |
Consente di specificare la versione corrente di file e cartelle a cui di desidera eseguire il rollback. |
Note
Il comando tf rollback nega l'effetto di ogni singolo insieme di modifiche specificato per ogni elemento specificato. La tabella seguente elenca il modo in cui l'operazione nega ogni tipo di modifica.
Se si esegue il rollback di questa modifica... |
... vengono eseguiti il ripristino dello stato precedente e la seguente modifica aggiuntiva |
---|---|
add, branch o undelete |
delete |
edit |
edit |
encoding |
encoding |
rename/move |
rename/move |
delete |
undelete |
merge |
Modifica che crea l'immagine in negativo delle modifiche unite nel ramo corrente. |
Nell'elenco seguente vengono forniti alcuni esempi di modifiche che sono il risultato del comando Rollback:
Se si sta eseguendo il rollback di un insieme di modifiche in cui si è verificata una modifica add , l'operazione di rollback provoca una modifica rollback e una modifica delete.
Se si sta eseguendo il rollback di un insieme di modifiche 521 in cui si è verificata una modifica edit, l'operazione di rollback causa una modifica rollback e una modifica edit, che negano le modifiche incluse dalla modifica edit nell'insieme di modifiche 521.
Nell'insieme di modifiche 132, è stata effettuata l'unione da $/BranchA/File1.txt a $/BranchB/File1.txt. Le modifiche incluse in tale unione includevano modifiche edit negli insiemi di modifiche 92 e 104. Nell'insieme di modifiche 162 viene eseguito il rollback dell'insieme di modifiche 132, che comporta una modifica rollback e una modifica edit al file $/BranchB/File1.txt, che impedisce le modifiche negli insiemi di modifiche 92 e 104.
Codici di uscita
Nella tabella seguente vengono visualizzati i codici di uscita dopo l'esecuzione del comando tf rollback.
Codice di uscita |
Oggetto di descrizione |
---|---|
0 |
L'operazione ha consentito di ripristinare tutti gli elementi in modo corretto. |
1 |
L'operazione ha consentito di ripristinare almeno un elemento in modo corretto ma non è stato possibile ripristinare altri elementi. |
100 |
L'operazione non ha consentito di ripristinare alcun elemento. |
Esempi
Nell'esempio seguente viene negato l'effetto dell'insieme di modifiche 23 su tutti gli elementi modificati in tale insieme.
c:\workspace> tf rollback /changeset:C23
Nell'esempio seguente viene negato l'effetto dell'insieme di modifiche 23 sul file a.txt.
c:\workspace> tf rollback /changeset:C23 a.txt
Nell'esempio seguente viene modificato il contenuto di a.txt affinché corrisponda alla versione archiviata con l'insieme di modifiche 23.
c:\workspace> tf rollback /toversion:C23 a.txt
Nell'esempio seguente viene modificato il contenuto di OurTeamProject affinché corrisponda all'ultimo insieme di modifiche applicato il giorno (o prima della mezzanotte del) 31 agosto 2009.
c:\workspace> tf rollback /toversion:D08/31/2009 /recursive $/OurTeamProject/
Esempio: l'opzione /keepmergehistory
Quando si esegue il rollback di un insieme di modifiche comprendenti un ramo o un'unione di modifiche, di solito si desidera effettuare unioni future tra lo stesso database di origine e lo stesso database di destinazione per includere tali modifiche. Tuttavia, è possibile utilizzare l'opzione /keepmergehistory se si desidera eseguire unioni future tra la stessa origine e la stessa destinazione per escludere insiemi di modifiche inclusi in una precedente operazione di unione.
Il comando può essere utilizzato ad esempio nella seguente situazione:
Il 30 giugno 2009 si esegue un'unione completa di tutti gli elementi da $/ BranchA/ a $/ BranchB/:
c:\workspace> tf merge $/BranchA $/BranchB
Si archivia questa unione come parte dell'insieme di modifiche 292.
A luglio vengono apportate molte modifiche al file $/BranchA/Util.cs. Queste modifiche vengono incluse negli insiemi di modifiche 297, 301 e 305.
Il 1 agosto 2009 si unisce $/BranchA/Util.cs to $/BranchB/Util.cs:
c:\workspace> tf merge $/BranchA/Util.cs $/BranchB/Util.cs
Si archivia la modifica come parte dell'insieme di modifiche 314. Il risultato di questa operazione è che le modifiche effettuate a $/BranchA/Util.cs negli insiemi di modifiche 297, 301 e 305 si applicano ora anche a $/BranchB/Util.cs.
Una settimana dopo, ci si rende conto che le modifiche eseguite a luglio in $/BranchA/Util.cs non sono appropriate per $/BranchB/Util.cs. È possibile utilizzare il comando di rollback per negare questi cambiamenti. Quando si utilizza il comando di ripristino per eseguire il rollback di una modifica merge o di una modifica branch, è necessario prendere una decisione.
Se si desidera che le modifiche apportate a luglio a $/BranchA/Util.cs vengano riapplicate a $/BranchB/Util.cs nelle unioni future, è necessario digitare il seguente comando:
c:\workspace> tf rollback /changeset:314
Se si desidera che le modifiche apportate a luglio a $/BranchA/Util.cs non vengano mai riapplicate a $/BranchB/Util.cs nelle unioni future, è necessario digitare il seguente comando:
c:\workspace> tf rollback /changeset:314 /keepmergehistory
Qualche settimana dopo, unire $/ BranchA/ a $/ BranchB/:
c:\workspace> tf merge $/BranchA $/BranchB
Se è stata omessa l'opzione /keepmergehistory, la modifica merge applicherà a $/BranchB/Util.cs tutti gli insiemi di modifiche applicati a $/BranchA/Util.cs dall'insieme di modifiche 292, inclusi gli insiemi di modifiche 297, 301 e 305. In altre parole, un'unione futura annullerà la modifica di rollback.
Se è stata inclusa l'opzione /keepmergehistory, l'operazione di unione applicherà a $/BranchB/Util.cs tutti gli insiemi di modifiche applicati a $/BranchA/Util.cs dall'insieme di modifiche 292, esclusi gli insiemi di modifiche 297, 301 e 305. In altre parole, un'unione futura non annullerà la modifica di rollback. Il contenuto in BranchA potrebbe quindi non corrispondere al contenuto in BranchB.
Vedere anche
Riferimenti
Concetti
Operazioni disponibili solo dalla riga di comando (controllo della versione di Team Foundation)