Es sin duda uno de los mayores inconvenientes de TFS, una vez creas un workspace no puedes utilizarlo más que en la máquina donde lo creaste, aunque sea el mismo usuario, ya que queda asociado también al nombre del equipo, no solo al usuario.
Esto es un problema si cambias de ordenador o si simplemente, como fue mi caso, se cambia el nombre del equipo (tuvimos que cambiar de dominio y en el nuevo los nombres eran diferentes). Pese a que hagas copia de seguridad y tengas todos los archivos, no puedes reutilizar el workspace porque está asociado a otra máquina y es en el workspace donde se almacena la información de los archivos que tienes descargados, las versiones, archivos que tienes bloqueados, etc. Está bien que se guarde esta información en el servidor pero si no puedo utilizarla desde otra máquina no le veo mucha utilidad.
Me costó bastante encontrar como solucionarlo, y es que TFS trae un cliente en línea de comandos desde el que se pueden hacer hacer virguerías. En mi caso, que lo utilizamos desde Eclipse con el plugin de Microsoft (originariamente de Teamprise), no tengo instalado el cliente de Visual Studio, así que le pedí algunos archivos a uno de mis compañeros. Con estos será suficiente:
- TF.exe
- Microsoft.TeamFoundation.Client.dll
- Microsoft.TeamFoundation.Common.dll
- Microsoft.TeamFoundation.VersionControl.Client.dll
- Microsoft.TeamFoundation.VersionControl.Common.dll
Se copian todos en una carpeta y, desde la línea de comandos en esa carpeta, ya podemos jugar. Aquí tenéis una buena lista de opciones del cliente en línea de comandos.
Primero le preguntamos por los workspaces asociados a nuestra nueva máquina:
C:tfs>tf workspaces -server:http://tfs.tudominio.com:8080/ No workspace matching *;osus on computer NOMBREEQUIPO found in Team Foundation Server http://tfs.tudominio.com:8080/.
Como veis nos dice que no hay ninguno. Ahora le pedimos que cambie nuestro workspace de la máquina vieja a la nueva. Lógicamente tendremos que conocer el nombre del workspace y el de la máquina antigua. Es importante tener en cuenta que hay que hacerlo obligatoriamente desde la máquina nueva que vamos a utilizar, no sirve hacerlo desde la de otro compañero ya que asocia automáticamente el workspace a la máquina donde se lanza el comando.
C:tfs>tf workspaces -login:posus@DOMINIO -server:http://tfs.tudominio.com:8080/ -updateComputerName:NOMBREMAQUINAVIEJA NOMBREWORKSPACE Collection: http://tfs.tudominio.com:8080/ Workspace Owner Computer Comment --------- ---------- ------------ --------------------------------------------- NOMBREWORKSPACE osus NOMBREEQUIPO
Para hacer el cambio te pedirá que te autentifiques con tus credenciales y, si todo ha ido bien, nos dirá que lo ha cambiado correctamente.
Si hacemos de nuevo la primera consulta:
C:tfs>tf workspaces -server:http://tfs.tudominio.com:8080/ Collection: http://tfs.tudominio.com:8080/ Workspace Owner Computer Comment --------- ---------- ------------ --------------------------------------------- NOMBREWORKSPACE osus NOMBREEQUIPO
Ahora ya podemos utilizar nuestro workspace en el nuevo equipo. Recuerda, eso sí, que si cambias de máquina (no es sólo un cambio de nombre) deberás copiar los archivos que ya tenías en la misma ruta original, se mantendrá todo como en la otra máquina, incluidos los archivos que estabas modificando.