version control - ¿Qué haces si el archivo en TFS está bloqueado por otra persona?
version-control command-line (10)
Alguien abandonó la organización, pero antes de irse, bloqueó todos los archivos por un motivo desconocido.
¿Cómo los desbloqueas para que los otros desarrolladores puedan trabajar?
Haga que un administrador del sistema restablezca la contraseña de esos usuarios, inicie sesión como ese usuario, desbloquee todos los archivos ...
Creo que esta es la solución para casi todas las preguntas de "alguien que ya no está en esta organización" ...
Aquí hay una explicación del uso de permisos TFS.
Es necesario que el permiso "Desbloquear otros cambios de usuario" configurado en Permitir elimine un bloqueo retenido por otro usuario.
Para la siguiente operación, deberá ser administrador del proyecto para el que desea deshacer el check-in o un administrador de Team Foundation si desea hacer esto en todos los proyectos.
Si todavía tiene el nombre de usuario de la persona, simplemente puede hacer algo como esto:
- Abra el símbolo del sistema de Visual Studio (Inicio -> Programas -> Microsoft Visual Studio 200X -> Herramientas de Visual Studio -> Símbolo del sistema de Visual Studio 200X)
- Ejecute el siguiente comando:
tf lock / lock: none / workspace: WorkspaceName; USERNAME / recursive $ /
Para obtener la lista de espacios de trabajo para un usuario, simplemente ejecute el siguiente comando desde el mismo mensaje:
tf workspaces / owner: nombre de usuario
Para obtener más comandos, ver tf /?
Es mejor eliminar el espacio de trabajo de ese usuario del servidor. ejemplo
tf workspace / delete / server: espacio de trabajo your_tfs_server; nombre de usuario
Si el desarrollador se ha ido de la organización, lo mejor que puede hacer es eliminar sus espacios de trabajo. Esto desbloqueará los archivos por usted pero también liberará algunos recursos en el servidor.
Vea la siguiente publicación de blog que hice sobre el tema cuando me sucedió hace unos años.
http://www.woodwardweb.com/vsts/unlocking_files.html
Puede eliminar el espacio de trabajo utilizando la línea de comando (tf.exe) o puede usar los excelentes TLS Sidekicks de Attrice.
primero necesita tener el derecho de hacer esto. Si tiene eso, lo más fácil es usar paletos de TFS de attrice http://www.attrice.info/cm/tfs/
Necesitaba agregar / colección: collectionURL; de lo contrario, no se pudo encontrar el espacio de trabajo:
- Artículo de lista
tf loc / lock: none / workspace: WorkspaceName; UserName / collection: collectionURL
Esta fue la única forma en que resolví esto, que implicaba eliminar el espacio de trabajo del usuario:
http://2toad.com/Blog/2012/1/27/how-to-manage-tfs-workspaces
Si el mensaje de error dice "El elemento $ / ... está bloqueado para su extracción por parte de algún usuario: 1 en el espacio de trabajo algunaMáquina123". luego uso el comando:
tf workspace /delete /server:http://machinename:8080/tfs/DefaultCollection someMachine123;someUser:1
Solo hay un espacio único entre la URL de recopilación y someMachine123;someUser:1
.
Tenga en cuenta que presté atención al hecho de que el mensaje de error mencionaba al usuario como someUser:1
, así que lo someUser:1
en el comando. No fue suficiente ejecutar el comando solo con algunos someUser
. No estoy seguro de qué se trata el: 1, sino señalar, imitar el mensaje de error.
Tenga en cuenta que el servidor tiene que ser la ruta de recopilación totalmente calificada, que puede encontrar yendo a Team Foundation Server Consola de administración-> Nivel de aplicación-> Colecciones de proyecto de equipo, el panel inferior mostrará una URL para la colección que se selecciona en la parte superior cristal.
También tuve un problema porque accidentalmente traté de usar workspaces
de workspaces
plurales en lugar de simplemente el workspace
de workspace
porque hay un comando similar que es plural.
A veces esto enmascara un problema diferente con una aplicación completamente diferente y está bloqueado por otro usuario, pero ni siquiera puedes crear una Nueva Carpeta para el nuevo proyecto en el que deseas fusionarte (el objetivo no permite la creación y dice incorrectamente que alguien tiene un archivo bloqueado en su nombre) pero luego profundizas y otro proyecto es el culpable.
Entonces, un proyecto completamente diferente puede ser el problema de tener archivos bloqueados por otra persona.
Use esta solución como último recurso .
Estoy usando TFS 2012. Fui a la base de datos TFS y ejecuté las siguientes consultas. ¡Y funcionó! Por supuesto, tenga mucho cuidado al jugar con la base de datos, realizar copias de seguridad, etc.
La base de datos se llama Tfs _ << your_TFS_collection_name >> . Ignore la base de datos MSSQL de Tfs_Configuration . No estoy seguro, pero si no tiene una base de datos Tfs _ << your_TFS_collection_name >> , la configuración podría estar en la base de datos Tfs_DefaultCollection . Los bloqueos se almacenan en tbl_PendingChange.LockStatus .
/*Find correct row*/
SELECT LockStatus, PendingChangeId, *
FROM tbl_PendingChange
WHERE TargetServerItem like ''%<<fileName>>%''
/*Set lock status to NULL (mine was set to 2 initially)*/
UPDATE tbl_PendingChange SET LockStatus = NULL WHERE
TargetServerItem like ''%<fileName>>%''
AND PendingChangeId = <<PendingChangeId from above>>