¿Cómo eliminar una asignación de espacio de trabajo TFS?


135

Tenía un proyecto en tfs dentro de un proyecto de equipo y luego lo trasladamos a una ubicación diferente en otro proyecto de equipo.

Había configurado a Jenkins para conectarse al proyecto del equipo y construir mi solución, pero cuando cambié la configuración para conectarme al nuevo proyecto del equipo tfs, me da el siguiente error:

[workspace] $ "C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\tf.exe" workspace -new Hudson-ProjectName1-Build-MASTER;domain1\username1 -noprompt -server:http://domain-eg.net:8080/tfs/newteamproject ********
The path D:\jenkins\jobs\ProjectName1-Build\workspace is already mapped in workspace Hudson-ProjectName1-Build-MASTER [http://domain-eg.net:8080/tfs/oldteamproject].

Entonces, lo anterior muestra que hay un espacio de trabajo existente, así que ejecuté el siguiente comando para eliminarlo

tf workspace -delete Hudson-ProjectName1-Build-MASTER;domain1\username1 -noprompt -server:http://domain-eg.net:8080/tfs/oldteamproject

y provocó que el espacio de trabajo se haya eliminado, pero sigo recibiendo el mismo error.

También verifiqué si la asignación se ha eliminado o no ejecutando el siguiente comando:

tf workspace -server:http://domain-eg.net:8080/tfs/oldteamproject Hudson-ProjectName1-Build-MASTER

pero dice que el espacio de trabajo no existe como se esperaba.

Entonces, pensé que podría estar almacenándolo en caché en algún lugar y ejecuté el siguiente comando:

tf workspaces /remove:* /collection:http://domain-eg.net:8080/tfs/oldteamproject

y decía "Ningún espacio de trabajo en el caché coincide * desde el servidor http://dominio-eg.net:8080/tfs/oldteamproject "

así que supongo que ni siquiera está en caché.

Entonces, ¿qué está causando el error y cómo resolverlo?


3
Los espacios de trabajo TFS deben contener asignaciones de carpetas de trabajo únicas por máquina , no solo por usuario y máquina. ¿Es posible que configure un espacio de trabajo de TFS que contenga D:\jenkins\jobs\ProjectName1-Build\workspacecomo otro usuario de TFS durante la prueba?
Edward Thomson el

9
Pruebe esto desde la máquina de compilación - C: \ Users \ {UserName} \ AppData \ Local \ Microsoft \ Team Foundation \ 3.0 \ Cache y elimine todo lo que está en la carpeta
SoftwareCarpenter

Me encontré con el mismo problema, mi caso era un espacio en blanco al comienzo del nombre del espacio de trabajo
Daniel Rapaport,

Recientemente reasigné mi raíz TFS y tuve el mismo problema. Resulta que en mi caso, el explorador TFS solo mostraba la ruta anterior (última) a la que había desprotegido en "Ruta local:" y estaba atenuada y no se podía hacer clic (azul). Obtuve el último y puso todo en la nueva asignación correcta y luego la ruta se volvió azul / activa. Si eliminó todas las asignaciones antiguas, es posible que solo muestre la última carpeta local a la que hizo la última actualización, que no es donde colocará los archivos ahora bajo la nueva asignación.
Rich M

Respuestas:


196

De VS:

  1. Abra Team Explorer
  2. Haga clic en Explorador de control de origen
  3. En la barra de navegación de la ventana de herramientas hay un menú desplegable con la etiqueta "Espacios de trabajo".
  4. Extiéndalo y haga clic en la opción "Espacios de trabajo ..." (sí, un poco poco intuitivo)
  5. Aparece la ventana "Administrar espacios de trabajo". Haga clic en editar y puede agregar / eliminar / editar su espacio de trabajo

explorador de control de fuente

De VS en una máquina diferente

¡No necesita que VS esté en la misma máquina que el alistamiento, ya que puede editar alistamientos remotos! En el cuadro de diálogo que aparece cuando presiona el elemento "Espacios de trabajo ..." hay una casilla de verificación que dice "Mostrar espacios de trabajo remotos" - simplemente marque eso y obtendrá una lista de todos sus alistamientos:

mostrar espacios de trabajo remotos

Desde la línea de comando

Llame a "tf workspace" desde el símbolo del sistema del desarrollador. Aparecerá directamente "Administrar espacios de trabajo".


1
Está haciendo esto en una máquina de compilación, y probablemente no tenga instalado Visual Studio allí.
Erik Funkenbusch

77
Gracias, esto funciona, otra razón más por la que TFS es horrible.
schmoopy

66
Eliminé todos los espacios de trabajo. luego agregó nuevo, obteniendo nuevamente el error de que mi carpeta ya está asignada a una url tfs de wrokspace (de viejo / eliminado). No se puede asignar a nuevo tfs / espacio de trabajo. M usando vs 2015
Sami

11
No funciona El espacio de trabajo permanece sin importar qué. reiniciar, reiniciar vs, rezar, hacer clic en los talones juntos 3x ... nada ... no se irá. No se puede asignar a nuevo ... no puede funcionar.
Beau D'Amore

3
Esta es la respuesta mejor calificada, pero no aborda el escenario donde el espacio de trabajo NO se eliminará (como Beau mencionó anteriormente). Lo eliminas, cierras el cuadro de diálogo, lo vuelves a abrir y vuelve. Absolutamente enloquecedor.
Dapug

123

Me encontré con el mismo problema y pude solucionarlo eliminando manualmente todos los archivos en el caché TFS, ubicado aquí:

%LocalAppData%\Microsoft\Team Foundation\3.0\Cache

o 4.0, 5.0, etc.


44
Gracias, esto funciona para mí porque mis datos locales en caché tfs no estaban sincronizados cuando mi empresa cambió el nombre de dominio de la red.
Dsum

55
No para mí. Todavía me está diciendothe path is already mapped in workspace {mypcname};domain\zhasan
SearchForKnowledge

55
Tenía un \ 4.0 \ Cache y \ 5.0 \ Cache del que me deshacía. En caso de que eso ayude a alguien.
Fooser

1
Esto funcionó para mí también. Consejo profesional, antes de eliminar los archivos de la Cachecarpeta, tómese un minuto para copiar todos los archivos y carpetas y guardarlos en una carpeta de respaldo, en caso de que no funcione para usted y tenga que restaurar su TFS a su estado anterior .
Shiva

En realidad, puede eliminar todo lo que se encuentra debajo Team Foundationsi desea realizar una resincronización limpia.
Supersharp

21

Siga estos pasos para eliminar la asignación de TFS:

  1. Abierto team explorer
  2. Hacer clic Source Control
  3. Haga clic derecho sobre usted project
  4. Haga clic en Remove Mapping

66
No hay opción para eliminar la asignación ... aún enfrenta el error de que su carpeta ya está asignada a algún espacio de trabajo de una URL de tfs antigua / eliminada. M usando vs 2015
Sami

1
No existe en Visual Studio Premium 2013
2016

1
Creo que esta opción solo está disponible cuando se dirige a la carpeta asignada originalmente. Entonces, si mapeo un proyecto de equipo completo con recursión, solo puedo desasignar todo el proyecto de equipo, mientras que si solo mapeo la carpeta de la solución, puedo desasignarlo lo suficientemente felizmente.
Jeff

@Sami Después de hacer clic derecho en su proyecto, Remove Mappingse mostrará en la Advancedsección
Uday

11

El error es genuino. Es posible que haya creado un espacio de trabajo con el mismo nombre en una máquina diferente. Ahora puede haber cambiado la máquina con un nombre diferente.

Así que aquí hay una solución que definitivamente funcionará. Seguir es una solución alternativa.

  1. Ir a "Team-Explorer"
  2. Vaya a "Control de fuente"
  3. Ir al menú desplegable del espacio de trabajo
  4. Haga clic en "Espacios de trabajo ..."
  5. Aparecerá una ventana emergente
  6. Haga clic en "Mostrar espacios de trabajo remotos"
  7. Ahora elimine el espacio de trabajo que está en conflicto y puede continuar con su trabajo.

Si bien este enlace puede responder la pregunta, es mejor incluir las partes esenciales de la respuesta aquí y proporcionar el enlace como referencia. Las respuestas de solo enlace pueden volverse inválidas si la página vinculada cambia.
alextansc

el enlace ahora estará funcionando bien. Gracias alextansc
smthakur19

@ smthakur19 lo que alex trató de decir es que si algún día ese enlace ya no está disponible (sitio web caído, página eliminada, etc.) esta respuesta será inútil. Por lo tanto, sería bueno incluir el texto y el código esenciales del enlace referenciado e incluirlo en la respuesta a todos. Entonces, la fuente de la respuesta y la pregunta serán SO.
Beytan Kurt

explicación elaborada, sin embargo, no pude agregar imágenes ya que mi reputación es inferior a 10.
smthakur19

1
Enlace roto, el procedimiento NO funciona. El espacio de trabajo permanece
Beau D'Amore

7

Por favor, siga los pasos a continuación:

Ctrl + Run 

Copia y pasado

%LocalAppData%\Microsoft\Team Foundation

Obtendrá una versión diferente de TFS, por ejemplo ingrese la descripción de la imagen aquí

Haga clic en cada carpeta y obtendrá

ingrese la descripción de la imagen aquí

Ahora elimine todos los datos en esta carpeta.

Reabrir el estudio visual.

Gracias.


4

Actualización 2019-01-23

Si recibe repetidamente el siguiente error The workspace wkspaceEg does not exist…incluso después de emplear el nombre de usuario correcto ( wkspcOwnerDomain\wkspcOwnerUsername) en el tf workspacecomando, por ejemplo,

tf workspace "wkspaceEg;wkspcOwnerDomain\wkspcOwnerUsername" /collection:http://tfs.example.com:8080/tfs/collectionEg /login:TFSUsername,TFSPassword

entonces el tf workfoldcomando puede ayudar a solucionarlo. Ver esta pregunta .

Si incluso eso no funciona y no puede / no desea utilizar TFS Sidekicks , continúe con la arriesgada opción de último recurso a continuación.


Estoy usando TFS 2012. Probé todo lo que se sugirió en línea: eliminé la carpeta de caché, utilicé el menú desplegable de espacios de trabajo, tf espacios de trabajo / eliminar: *, credenciales borradas del Panel de control, IE, etc.

Nada funcionó, creo que mi espacio de trabajo se corrompió de alguna manera. Finalmente, fui a la base de datos TFS y ejecuté las siguientes consultas. ¡Eso funciono! Por supuesto, tenga mucho cuidado al jugar con la base de datos , realizar copias de seguridad, etc.

Se llama a la base de datos Tfs_<<your_TFS_collection_name>>. Ignora elTfs_Configuration base de datos MSSQL. No estoy seguro, pero si no tiene una Tfs_<<your_TFS_collection_name>>base de datos, la configuración podría estar en la Tfs_DefaultCollectionbase de datos. El mapeo se almacena en tbl_WorkingFolder.LocalItem.

/*Find correct workspace*/
SELECT WorkspaceId, *
FROM tbl_Workspace
ORDER BY WorkspaceName

/*View the existing mapping*/
SELECT LocalItem, *
FROM tbl_WorkingFolder
WHERE WorkspaceId = <<WorkspaceId from above>>

/*Update mapping*/
UPDATE tbl_WorkingFolder
SET LocalItem = 'D:\Legacy.00\TFS\Source\Workspaces\teamProjEg' WHERE
/*LocalItem = NULL might work too but I haven't tried it*/
WorkspaceId = <<WorkspaceId from above>>


2

Ninguna de las respuestas aquí eliminó mis espacios de trabajo. Pero aquí hay una solución que puede funcionar para usted.

  1. Abra un símbolo del sistema de Visual Studio
  2. Cierre Visual Studio primero o el comando eliminar puede no eliminar el espacio de trabajo
  3. Listar los comandos del espacio de trabajo -> tf /? para encontrar los comandos disponibles para usted desde la versión de TFS.
  4. Listar los espacios de trabajo -> espacios de trabajo tf
  5. Eliminar el espacio de trabajo -> tf workspace YourWorkspace / delete

Este es el camino a seguir si tiene dos espacios de trabajo con el mismo nombre pero para diferentes usuarios (por ejemplo, su cuenta normal y una cuenta de administrador). Esos dos espacios de trabajo no se mostrarán como dos espacios si abre la vista "Espacios de trabajo" tal como se describe en las otras respuestas; solo se incluirá el del usuario actual. En mi caso, era el segundo espacio de trabajo (para la cuenta de administrador) que estaba bloqueando las operaciones. Si hace lo que se describe en esta respuesta, el paso 5 le permitirá eliminar el segundo espacio de trabajo usando "tf workspace YourWorkspace; HiddenUser / delete".
H. Breitkreutz

2

No tiene que eliminar toda la carpeta Caché. pierde todas las configuraciones / preferencias Las asignaciones del espacio de trabajo se almacenan en un archivo llamado:

VersionControl.config en la configuración local del usuario / directorio de datos de la aplicación. ubicado aquí en windows 7:

% LocalAppData% \ Microsoft \ Team Foundation \ x.0 \ Cache \ Volatile

donde x = 3.0,4.0, 5.0,6.0 etc.

Dentro de esto, encontrará carpetas con nombre guid, abra cada una de ellas, editando manualmente el archivo mencionado anteriormente, para eliminar la asignación del espacio de trabajo (la ruta del directorio estará presente en el atributo mappedpaths) de esa carpeta local al servidor TFS (que ya no está en uso )



1

Se me solicitó que inicie sesión en nuestro servidor TFS a través de Visual Studio, por lo que utilicé mi cuenta SU que normalmente se requiere para acceder al servidor. Esto condujo a algunos problemas, y terminé asignando a una carpeta diferente, sin darme cuenta de que acababa de duplicar todas mis cosas. En algún momento, Visual Studio volvió a mi usuario habitual, "perdí" los cambios pendientes y noté que se habían colocado nuevos cambios pendientes en mi mapeo anterior.

Cuando intentaba reasignar a la nueva ubicación (a la que estaba vinculada la cuenta SU) en un intento de recuperar mis cambios pendientes, me decía que ya estaba asignada a la SU, y no podía hacer eso, pero tenía no hay forma de eliminar el mapa! Mostrar espacios de trabajo remotos, eliminar todos los espacios de trabajo a través de la línea de comandos, etc. no reveló nada. Entonces pensé "¿y si en realidad está vinculado a la cuenta de usuario SU en mi computadora? , no al dominio"? Inicié sesión como mi SU localmente, y efectivamente, había un espacio de trabajo configurado para ese usuario. Eliminé la asignación y pude volver a mi usuario habitual y reasignar sin problemas.

Moraleja de la historia, tal vez otro usuario haya iniciado sesión en la misma máquina, que no es visible desde el usuario actualmente conectado, por lo que no puede eliminar ni siquiera ver las asignaciones.


1

Si las pistas mencionadas no le están ayudando, descargue Team Foundation Sidekick y, utilizando eso, puede eliminar los espacios de trabajo.


1

Archivo -> Control de origen -> Avanzado -> Espacios de trabajo -> Elija el espacio de trabajo en Administrar espacios de trabajo y haga clic en "Editar" Luego puede cambiar la carpeta local.


1

Todas las respuestas aquí parecen ser respuestas parciales que no funcionan en todos los casos. Creo que esta respuesta funcionará en todos los casos, suponiendo que tenga los permisos adecuados.

  1. Abra el símbolo del sistema del desarrollador. En mi caso, lo probé con el símbolo del sistema del desarrollador para VS 2019.
  2. Escriba este comando: tf workspaces

Tenga en cuenta que los resultados pueden enumerar un par de tablas con estructura idéntica. Si solo ve una tabla, algunas de las suposiciones en las otras respuestas pueden funcionar para usted. Sin embargo, si ve dos o más tablas, ¡esa cadena de Colección es importante! Para nuestros ejemplos, vamos a suponer que tiene dos colecciones (dos no es diferente de cuatro, de lo contrario, una es más tediosa que la otra para pasar por ella):

https://dev.azure.com/foo y https://bar.visualstudio.com/

Con suerte, sabrá con cuál de estos dos quiere trabajar. Sin embargo, si necesita recorrerlas todas, solo tendrá que hacer esa colección a la vez. Cada "Colección" aquí es lo mismo que una "Organización" en Azure DevOps (creo).

Si no utiliza este detalle de la Colección, es posible que vea un mensaje de error:

No se puede determinar el servidor de control de origen.

  1. A continuación, escriba este comando para la colección que desea usar:

tf workspaces /computer:* /owner:* /collection:https://dev.azure.com/foo

Esto le dará una imagen mucho más completa de lo que está tratando. Esto se vuelve especialmente desagradable si ha tenido múltiples cuentas de MSA y Org que llegan a este repositorio desde la misma computadora. De hecho, es posible que tenga varias entradas aparentemente idénticas. Si intenta eliminarlos según lo que sabe actualmente, es posible que no funcione. Pero podemos obtener más información.

  1. A continuación, vamos a ejecutar el mismo comando pero anexarlo /format:xmlal final:

tf workspaces /computer:* /owner:* /collection:https://dev.azure.com/foo /format:xml

Esto ahora le da un montón de XML con algunas propiedades adicionales. Los que probablemente nos interesan más son los alias de propietario. Esta es la información que falta para revisar y eliminar estos espacios de trabajo. Sin esta información adicional, es fácil golpear una pared y quedar atrapado con un mensaje de error:

Especifique un espacio de trabajo.

  1. Ahora tenemos toda la información que necesitamos. Dadas las OwernAliasesentradas adicionales , seleccione la entrada única (o repita si hay más de una) que desea eliminar y use este siguiente comando (se enumeran algunos ejemplos):

    • tf workspace /delete /collection:https://dev.azure.com/foo "MyWorkspaceName;Windows Live ID\John.Doe@hotmail.com"
    • tf workspace /delete /collection:https://dev.azure.com/foo "MyWorkspaceName;John Doe"
    • tf workspace /delete /collection https://dev.azure.com/foo "MyWorkspaceName;2C3E8474-A39C-4785-8794-DC72F09981E6\John.Doe@Example.com"

El GUID identifica un directorio AAD y las comillas están ahí para manejar cualquier espacio que pueda estar en un alias. El "MyWorkspaceName" proviene de sus consultas anteriores que enumeran los espacios de trabajo.


Sin este enfoque exhaustivo, es posible que todas las otras respuestas en esta pregunta fallen para usted. Si bien algunos de esos esfuerzos eliminarán los espacios de trabajo locales, no eliminarán los espacios de trabajo del servidor, con los cuales aún puede entrar en conflicto. Además, si anteriormente ha utilizado una cuenta diferente, las cosas pueden ponerse difíciles, como si cambiara de una cuenta MSA a una cuenta AAD. Y las cosas se ponen REALMENTE complicadas si tienes una cuenta MSA ymúltiples cuentas AAD, todas con la misma dirección de correo electrónico que ha utilizado desde la misma estación de trabajo. Y luego se vuelve súper loco si varios de ellos usan el nombre predeterminado para el espacio de trabajo: el nombre de host de su computadora. En mi caso, tenía cuatro espacios de trabajo, todos con el mismo nombre de espacio de trabajo, nombre de propietario y nombre de computadora (es decir, la primera consulta sin el formato XML tenía 4 registros idénticos).


No sé si hay una forma más gráfica de gestionar esto que esto. He buscado y aún no he encontrado una mejor manera que esta.


0

También puede eliminar una asignación tfs simplemente editando su archivo .sln y eliminando el elemento GlobalSection para el enlace tfs.


0

¡Gracias por tu ayuda!

Buscar espacio de trabajo problemático SELECCIONAR * DESDE tbl_Workspace DONDE WorkspaceName como '% xxxxx%'

Encuentre el espacio de trabajo deseado SELECCIONE * DESDE tbl_Workspace DONDE WorkspaceName como '% zzzzz%'

Seleccione Editar Top 200 tbl_WorkingFolder y luego busque la asignación de problemas SELECCIONE * DESDE tbl_WorkingFolder DONDE WorkspaceId = Problema WorkspaceId desde arriba

Cambie el WorkspaceId al WorkspaceId deseado

Finalmente, vaya al Explorador de proyectos y seleccione Eliminar asignación en el proyecto

Modifique VB6 MSSCCPRJ.SCC para que coincida con el WorkSpace deseado


0

Primero descargue e instale el complemento Team Explorer en su sistema y luego vaya al Explorador de control de código fuente. En el panel de navegación, busque el campo Espacio de trabajo y haga clic en la opción Espacios de trabajo. Después de hacer clic en la opción Espacios de trabajo, verá todos los espacios de trabajo que están asignados. Haga clic en el botón Eliminar y luego elimine la asignación de los espacios de trabajo necesarios.


0

Ejecute tf workspacespara ver las asignaciones actuales del espacio de trabajo. La salida se ve así:

ingrese la descripción de la imagen aquí

Entonces corre tf workspace /delete "{workspace};{user}

Usando la salida anterior, para eliminar el espacio de trabajo bi:

tf workspace /delete bi;James Wierzba


Esto no está funcionando para mí. Recibo el siguiente error: Se produjo un error de argumento: se requiere un nombre de espacio de trabajo para eliminar un espacio de trabajo.
Rojo M

0

Los siguientes son los pasos para eliminar la asignación de un proyecto de TFS:

(1) Haga clic en el botón Ver.

(2) Abra Team Explorer

(3) Haga clic en Control de fuente

(4) Haga clic derecho en su proyecto / Directorio

(5) Haga clic en Eliminar mapeo

(6) Finalmente elimine el directorio local del formulario del proyecto.


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.