Comando lock (Control de versiones de Team Foundation)

Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2019

Visual Studio 2019 | Visual Studio 2022

El comando lock de Control de versiones de Team Foundation (TFVC) bloquea o desbloquea un archivo o carpeta. El comando deniega o restaura el derecho de los usuarios a extraer del repositorio un elemento para su edición en un área de trabajo diferente, o bien para insertar en el repositorio los cambios pendientes en un elemento de otra área de trabajo.

Requisitos previos

Para usar el comando lock, debe tener el permiso Bloquear establecido en Permitir. Necesita el conjunto de permisos Desbloquear los cambios de otro usuario establecido en Permitir para quitar un bloqueo mantenido por otro usuario si no tiene permiso Escribir para el área de trabajo de ese usuario. Para más información, vea Permisos predeterminados de TFVC.

Sintaxis

tf lock itemspec /lock:(none|checkout|checkin) 
[/workspace:workspacename] [/recursive] [/login:username,[password]] [/collection:TeamProjectCollectionUrl] 

Parámetros

Argumentos

Argument

Descripción

<itemspec>

Identifica el archivo o carpeta que se va a bloquear o desbloquear. Para más información sobre cómo TFVC analiza itemspec para determinar qué elementos están dentro del ámbito, vea Uso de opciones para modificar cómo funciona un comando.

Nota:

Puede especificar más de un argumento itemspec.

<workspacename>

Valor proporcionado por el usuario para la opción /workspace.

<username>

Proporciona un valor a la opción /login. Puede especificar un valor username como DOMAIN\username o username.

<TeamProjectCollectionUrl>

Dirección URL de la colección de proyectos que contiene el archivo o la carpeta que quiere bloquear o desbloquear, por ejemplo http://myserver:8080/tfs/DefaultCollection.

Opciones

Opción

Descripción

/lock

Especifica un tipo de bloqueo o quita un bloqueo de un elemento. Para más información, vea Descripción de los tipos de bloqueo.

Opciones de bloqueo:

  • None: quita un bloqueo de un elemento.

  • Checkin: permite extraer del repositorio un elemento y editarlo en todas las áreas de trabajo, pero impide que los usuarios inserten en el repositorio los cambios en el elemento fuera del valor /workspace especificado hasta que libere explícitamente el bloqueo de inserción en el repositorio. Si el elemento especificado está bloqueado en cualquier otra área de trabajo, se produce un error en la operación de bloqueo.

  • Checkout: impide que los usuarios inserten o extraigan del repositorio los elementos especificados hasta que se libere explícitamente el bloqueo. Si los usuarios han bloqueado alguno de los elementos especificados o si existen cambios pendientes en cualquiera de los elementos, se produce un error en la operación de bloqueo.

/workspace

Especifica el nombre de un área de trabajo diferente en la que se va a aplicar el bloqueo. De manera predeterminada, el bloqueo se aplica en el área de trabajo en la que se encuentra actualmente.

/login

Especifica el nombre de usuario y la contraseña para autenticar al usuario con Azure DevOps.

/collection

Especifica el nombre de la colección de proyectos.

Observaciones

Puede usar el comando lock para inmovilizar temporalmente la versión del servidor de TFVC de un elemento para que pueda insertar en el repositorio un cambio pendiente sin tener que resolver ningún conflicto de combinación. Si quiere impedir permanentemente el acceso a un elemento en el servidor de TFVC, en su lugar debe usar el comando permission.

Nota:

Como cortesía a los compañeros de equipo, notifíqueles cuando aplique un bloqueo a un elemento, explique por qué lo hace y calcule cuándo planea quitar el bloqueo, si puede.

Para más información sobre cómo usar la utilidad de línea de comandos tf, vea Uso de comandos de control de versiones de Team Foundation.

Procedimiento para bloquear un elemento

Puede bloquear un elemento mediante el comando lock o si especifica una opción lock durante la ejecución de otros comandos de la utilidad de línea de comandos tf, entre los que se incluyen los siguientes:

Para add y branch, el bloqueo se coloca en el espacio de nombres donde se creará el elemento. Los bloqueos colocados con rename se aplican a los espacios de nombres antiguos y nuevos. Para más información, vea Bloqueo y desbloqueo de carpetas o archivos.

Tipos de bloqueo

TFVC proporciona dos tipos de bloqueos: checkin y checkout.

Un bloqueo checkin es menos restrictivo que un bloqueo checkout. Cuando aplica un bloqueo checkin, los usuarios pueden continuar realizando cambios locales en el elemento en otras áreas de trabajo. Los cambios no se pueden insertar en el repositorio hasta que quite explícitamente el bloqueo de inserción en el repositorio del área de trabajo.

Un bloqueo de extracción del repositorio es menos restrictivo que un bloqueo de inserción en el repositorio. Cuando se aplica un bloqueo de extracción del repositorio a un archivo o carpeta controlado por versiones, los usuarios no pueden extraer del repositorio el elemento para editarlo ni insertar en el repositorio los cambios pendientes ya existentes. No puede adquirir un bloqueo de extracción del repositorio si actualmente hay cambios pendientes en un elemento.

Para más información sobre cuándo aplicar un bloqueo de extracción del repositorio y cuándo uno de inserción en el repositorio, vea Descripción de los tipos de bloqueo.

Funcionamiento del bloqueo

Si se extrae del repositorio un archivo cuando lo bloquea, su estado se modifica para contener el nuevo tipo de bloqueo. Si los archivos no se extraen del repositorio, se agrega un cambio de bloqueo al conjunto de cambios pendientes del área de trabajo. A diferencia del comando checkout, lock no hace que un archivo se pueda editar automáticamente.

Los bloqueos de carpetas son implícitamente recursivos. Si bloquea una carpeta, no necesita bloquear los archivos que contiene a menos que quiera aplicar el bloqueo de extracción del repositorio, más restrictivo, a un archivo de una carpeta que tiene un bloqueo de inserción en el repositorio.

Desbloqueo de un elemento

Puede desbloquear un elemento bloqueado mediante la opción none. TFVC desbloquea automáticamente un elemento cuando inserta en el repositorio los cambios pendientes en el área de trabajo.

Puede determinar qué archivos están bloqueados en el servidor TFVC y quién los ha bloqueado mediante el comando status.

Ejemplos

En el ejemplo siguiente se impide que otros usuarios extraigan del repositorio 314.cs.

c:\projects>tf lock /lock:checkout 314.cs

En el ejemplo siguiente se impide que otros usuarios inserten en el repositorio los cambios en 1256.cs, pero se les permite extraerlos del repositorio en sus áreas de trabajo.

c:\projects>tf lock /lock:checkin 1256.cs

En el ejemplo siguiente se impide que otros usuarios realicen cambios pendientes en los elementos de la carpeta $/src del servidor de TFVC.

c:\projects>tf lock /lock:checkout $/src

En el ejemplo siguiente se desbloquean todos los archivos de la carpeta del servidor de TFVC $/src y se hace que estén disponibles para la extracción del repositorio y la inserción en el repositorio por parte de otros usuarios.

c:\projects>tf lock /lock:none $/src