version-control command-line tfs administration

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.



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>>