Errore TF203015: The item $/mypath/myfile has an incompatible pending change.
When you work with Team Foundation Server 2010 and Visual Studio 2008 you cannot merge file changes when you try to unshelve a shelveset. In fact if you try to unshelve a shelveset which contains file already chenged on the local workspace, you will have the following error:
TF203015: The item $/mypath/myfile.cs has an incompatible pending change
because the file myfile.cs is checked out on the local workspace and the unshelve operation fails because the merge operation doesn’t occur during unshelve operation.
To support this requirement Microsoft has released the Team Foundation Power Tools 2010 (TFPT) that allow you to perform the merge during unshelve.
Below is the step by step procedure.
Assume that the working folder is C:\WORK\MyProject, which is the local folder mapped to the TFS project MyProject.
- Open the Visual Studio 2008 Command Prompt
- Go to workdir with the command cd C:\WORK\MyProject
- Insert the command tfpt unshelve and press Enter(if the credentials prompt appears, insert the right credentials)
- Then the popup “Find Shelveset” will appearChoose the desired shelveset and click Unshelve button
- “Unshelve/Merge Shelveset” window will appar and will show to you the list of confilct files.
- Click the Auto-merge All button.
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
3 commenti