Come posso eseguire il rollback di un check-in TFS?

Vorrei ripristinare una modifica apportata di recente in TFS. In Subversion, questo era abbastanza semplice. Tuttavia, sembra essere un incredibile mal di testa in TFS:

Opzione 1: ottieni la versione precedente

  1. Ottieni manualmente la versione precedente di ciascun file
  2. Controlla per la modifica
  3. Fail – il checkout (in VS2008) mi obbliga a ottenere l’ultima versione

Opzione 2: Ottieni gli strumenti di alimentazione TFS

  1. Scarica Team Foundation Power Tools
  2. Emettere il comando di rollback dalla riga cmd
  3. Fail – non funzionerà se ci sono altre modifiche in sospeso

Opzione 3: annulla manualmente le modifiche

  1. annullare manualmente le mie modifiche, quindi eseguire il commit di un nuovo changeset

Domanda

Come faccio a ripristinare un precedente changeset in TFS?

  1. Scarica e installa Power Tools di Team Foundation .
  2. Aprire il prompt dei comandi di Visual Studio
  3. Passare alla directory sul file system su cui è mappato TFS. Se non lo fai, otterrai un errore “Imansible determinare l’area di lavoro” quando tenti di eseguire il rollback
  4. Assicurati che tutto il resto sia archiviato o accantonato
  5. lanciare tfpt rollback per far apparire l’interfaccia.
  6. Scegli i changeset che vuoi ripristinare
  7. Controlla le nuove versioni dei file che hai ripristinato

Il grande svantaggio dello strumento è che vorrà aggiornare tutto nel proprio spazio di lavoro prima di poterlo unire. Ho risolto questo problema creando un nuovo spazio di lavoro solo per il rollback che si collegava direttamente al punto nell’albero dei sorgenti in cui si trovavano i file interessati.

Se hai bisogno di aiuto per capire quali gruppi di modifiche effettuare il rollback, trovo molto utile lo strumento di revisione del codice nel componente aggiuntivo gratuito Team Foundation Side Kicks .

La soluzione numero 1 funzionerà: 1. ottenere manualmente la versione precedente di ciascun file

  1. controlla per la modifica

  2. Controlla il file e ignora le modifiche al server quando richiesto.

Il motivo per cui ha fallito per te è perché devi avere l’opzione “Scarica l’ultima versione dell’articolo al momento del check-out” triggersta. Distriggers questa opzione andando su Strumenti … Opzioni … Controllo sorgente … Visual Studio Tema Foundation Server e deseleziona “Scarica l’ultima versione dell’articolo al momento del check out”

Saluti

Il rollback è stato spostato da tfpt.exe a tf.exe, lo strumento di controllo della versione di Team Foundation.

TF - Team Foundation Version Control Tool, Version 10.0.30319.1 Copyright (c) Microsoft Corporation. All rights reserved. Rolls back the changes in a single or a range of changesets: tf rollback /changeset:changesetfrom~changesetto [itemspec] [/recursive] [/lock:none|checkin|checkout] [/version:versionspec] [/keepmergehistory] [/noprompt] [/login:username,[password]] tf rollback /toversion:versionspec itemspec [/recursive] [/lock:none|checkin|checkout] [/version:versionspec] [/keepmergehistory] [/noprompt] [/login:username,[password]] 

Sono disponibili due opzioni per il rollback (ripristino) di un changeset in TFS 2010 Version Control. La prima opzione utilizza l’interfaccia utente (se è installata l’ultima versione di TFS 2010 Power Tools ).

Rollback Changeset in UI per TFS 2010

L’altra opzione utilizza l’applicazione della riga di comando per il controllo della versione di TFS 2010:

 tf.exe rollback 

Ho informazioni su entrambi gli approcci sul mio post di blog disponibili qui: http://www.edsquared.com/2010/02/02/Rollback+Or+Undo+A+Changeset+In+TFS+2010+Version+Control.aspx

Un altro modo per far funzionare la tua opzione 1 è di invertire l’ordine dei passaggi:

  1. Controlla gli articoli
  2. Ottieni la versione specifica per la vecchia versione
  3. Effettuare il check-in (ignorando la finestra di dialogo “la versione del server di avviso è più recente”) OPPURE nella sezione dei conflitti della finestra di dialogo Modifiche in sospeso risolvere i conflitti mantenendo la versione locale.

Funzionerà anche se hai impostato l’ultimo acquisto.

Per riferimento, se si utilizza TFS 2010 , qui è disponibile il collegamento al comando Rollback Command (controllo della versione di Team Foundation) .

Per eseguire il rollback di un changeset specifico, andare a Prompt dei comandi di Visual Studio (2010) , accedere alla directory dello spazio di lavoro TFS e digitare il comando:

 tf rollback /changeset:C12345 

dove 12345 è il tuo numero di changeset. Dopo questo, ti mostrerà il registro di ciò che ha fatto e dovrai risolvere i conflitti di unione.

Ah, ho appena trovato questo articolo CodePlex sull’utilizzo di TFPT.exe (power tool) per il rollback di un changeset.

Spero che questo ti aiuti.

Non avere un’opzione di rollback è in realtà una funzionalità di TFS;)

Per le modifiche al rollback:

  1. Controlla qualsiasi versione specifica delle modifiche che desideri
  2. Modifica-> Seleziona tutto-> Copia il testo nel file
  3. Verifica qualsiasi versione del file si trovi sul server
  4. Incolla il file e fai il check-in.

E ora vengono salvati anche tutti i tuoi changeset intermedi prima del rollback! Che grande caratteristica!

Se hai fatto 1 check-in e vuoi solo annullarlo, ad esso è associato un n ° changeset. Esegui una cronologia sulla cartella in questione per visualizzare il changeset errato. Aprilo per vedere i dettagli (tutti i file modificati, ecc.).

Credo che tu possa ripristinare o annullare un changeset da quello schermo, ma il mio Visual Studio si è appena schiantato quando ho provato a farlo. / sospiro – Condivido decisamente il tuo dolore.

Dove posso scaricare TFS su questo sito?

Penso che il Team Foundation Power Tools sia la strada da percorrere. Se sono presenti modifiche in sospeso, è ansible spostarle in un set di scaffali, quindi annullare o controllare tutte le modifiche in sospeso prima di eseguire il comando di rollback. Vedi http://www.codeplex.com/VSTSGuidance/Wiki/View.aspx?title=How%20to%20undo%20a%20check-in&referringTitle=Source%20Control%20Practices%20at%20a%20Glance per ulteriori informazioni.

Ben Scheirman: la finestra di dialogo Dettagli changeset non ha funzionalità di rollback.

Un’altra opzione è TFSPlus . Questo add-in di Visual Studio aggiunge (tra gli altri) il comando Ottieni questa versione alla finestra della cronologia. Se hai il file estratto, lo sostituirà con quella versione. Se effettui un check-in in seguito, eseguirai effettivamente un rollback per quella versione.

Funziona su singoli file invece di completi changeset, però.

usare gli strumenti di TFS powertools è il modo migliore http://rajputyh.blogspot.com/2008/08/change-set-rollback-using-tfs-power.html

Ottieni una versione specifica

Nell’elenco a discesa Tipo di versione selezionare Tipo come gruppo di modifiche

Usa il pulsante Changeset … per trovare il tuo changeset o semplicemente digitare, se conosci questo numero.

Dopo aver impostato il changeset specifico.

Check-out

Registrare

Nessuna di queste soluzioni ha funzionato per me, la soluzione di Dave Roberts è stata la più vicina a quello in cui ho effettivamente lavorato. Non ho Scarica l’ultima versione dell’articolo al momento del check-out, tuttavia sembra che sia una politica del server.

La mia soluzione è controllare il file per la modifica, ottenere una versione specifica, quindi quando viene rilevato il conflitto, utilizzare lo strumento di fusione (e unire manualmente nessuna delle modifiche) in modo che il file si trovi nella condizione in cui si trovava.

Stavo andando a confrontare con la versione specifica e copiare l’intero file, quindi basta incollarlo sopra la parte superiore del vecchio.

Ancora dovrebbe esserci un modo più semplice per farlo!

La soluzione sopra è per TFS2008. TFS2010 ha una funzione di rollback integrata. vedi questo articolo per i dettagli.

Installa l’ ultima versione di TFS Power Tools (agosto 2011) e puoi semplicemente fare clic con il pulsante destro del mouse su un set di modifiche e selezionare “Rollback Entire Changeset”. Non è molto più facile di così.

È disponibile qui: http://visualstudiogallery.msdn.microsoft.com/c255a1e4-04ba-4f68-8f4e-cd473d6b971f

È suggerito in Team Explorer Miglioramenti nella pagina sopra:

Novità di questa versione è la possibilità di [..] facilmente il rollback delle modifiche nel controllo della versione.