Quando si lavora con Team Foundation Server 2010 e Visual Studio 2008 non è possibile effettuare il merge delle modifiche ai file quando si effettua un’operazione di unshelve. Infatti se si tenta di fare un’operazione di unshelve di uno shelveset che contiene file che sono già in modifica sul workspace locale, si ottiene l’errore seguente:
TF203015: The item $/mypath/myfile.cs has an incompatible pending change
questo avviene perché il file (nell’esempio myfile.cs) è in checkout per modifiche e l’operazione di unshelve fallisce perché il merge non viene richiesto in fase di unshelve.
A supporto di questa esigenza Microsoft ha rilasciato i Team Foundation Power Tools 2010 (TFPT) che consentono di effettuare il merge in fase di unshelve.
Di seguito la procedura passo per passo.
Assumiamo che la working folder sia C:\WORK\MyProject, ossia la cartella locale mappata al progetto TFS MyProject.
- Aprire il Visual Studio 2008 Command Prompt
- Portarsi sulla workdir con il comando cd C:\WORK\MyProject
- Inserire il comando tfpt unshelve e premere Invio
(se appare il prompt delle credenziali TFS, inserire le credenziali corrette) - Una volta eseguito il comando del punto 3. apparirà il popup per la scelta dello shelveset
Scegliere lo shelveset desiderato e fare click sul pulsante Unshelve - Si aprirà una finestra che mostrerà i file in conflitto con le proprie modifiche locali (ossia solo i file modificati in locale e nello shelveset per il quale si sta facendo l’unshelve)
- Fare click su Auto-merge All