Compreender tipos de bloqueio

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

Você pode usar o comando lock TFVC (Controle de Versão do Team Foundation) para impedir temporariamente que as alterações sejam feitas em um arquivo ou pasta específico no servidor de controle do código-fonte. Este recurso poderá ser útil se você quiser alterar um item em seu workspace e depois fazer seu check-in sem ser forçado a resolver qualquer conflito de mesclagem. Apenas um usuário por vez pode reter um bloqueio em um arquivo ou uma pasta específicos. Se você quiser bloquear o acesso a um item de maneira persistente, use o comando Permission.

Tipos de bloqueio

O fornece dois tipos de bloqueios: bloqueios de check-in e bloqueios de check-out.

Bloqueio de check-in

Um bloqueio de check-in é menos restritivo que um bloqueio de check-out. Quando você aplicar um bloqueio de check-in, os usuários poderão continuar fazendo alterações locais ao item bloqueado em outros workspaces. Mas essas alterações não podem ser verificadas até que você remova o bloqueio executando uma das seguintes ações:

  • Remover explicitamente o bloqueio de check-in do item
  • Remover implicitamente o bloqueio ao realizar o check in de suas alterações no arquivo

Bloqueio de check-out

No Azure DevOps, os bloqueios de check-out geralmente não são eficientes devido aos workspaces locais. Para obter mais informações, consulte Decidir entre usar um workspace local ou de servidor. Especificamente, os bloqueios de check-out:

  • Não são aplicáveis porque outros usuários podem usar workspaces locais.
  • Não disponível se você usar um workspace local.
  • São desabilitados se um membro do grupo de segurança Administradores de sua coleção de projetos habilitou o check-out assíncrono para os workspaces do servidor de sua equipe.

Um bloqueio de check-out impede os usuários que usam os workspaces do servidor de fazer check-out e fazer alterações no item bloqueado nos workspaces. Você não pode aplicar um bloqueio de check-out a um item para o qual existem alterações pendentes em qualquer workspace diferente do seu.

Como o bloqueio funciona

Se o check-out de um arquivo for feito quando você bloqueá-lo, seu registro de check-out será modificado para conter o novo tipo de bloqueio. Se o arquivo não for submetido a check-out, uma alteração de bloqueio será acrescentada ao conjunto de alterações pendentes do workspace. Ao contrário do comando checkout, o comando lock não torna automaticamente um arquivo editável.

O TFVC desbloqueia um item automaticamente quando você fizer o check-in das alterações pendentes no workspace onde ele é bloqueado. Os bloqueios também são liberados quando as alterações pendentes de um arquivo são desfeitas usando o comando undo.

Bloqueios em pastas são implicitamente recursivos. Se você bloquear uma pasta, não precisará bloquear os arquivos que ela contém. Uma exceção existe quando uma pasta tem um bloqueio de check-in, que é menos restritivo do que um bloqueio de check-out. Se você quiser usar um bloqueio de check-out em um arquivo nessa pasta, precisará aplicar esse bloqueio de check-out.

Apenas um usuário por vez pode reter um bloqueio em um arquivo ou uma pasta específicos. Você pode usar o comando Status para ver quais arquivos estão bloqueados no servidor do Azure DevOps e quem os bloqueou.

Um bloqueio pode ser colocado como uma operação isolada ou como parte de várias outras operações. Essas operações incluem rename, checkout, delete, undelete, merge, branch e add. Quando você bloqueia um item como parte da adição ao controle do código-fonte ou ramificação, o TFVC coloca o bloqueio no caminho do servidor onde o novo item é criado. Esse posicionamento impede que outro usuário adicione ou ramifique um arquivo no mesmo local. Quando você bloquear um item usando o comando rename, os caminhos de servidor antigos e novos são bloqueados.

Desbloquear um item

Você pode desbloquear um item explicitamente usando o comando unlock ou implicitamente ao fazer check-in. Quando você fizer o check-in das alterações pendentes em um item bloqueado, o Azure DevOps removerá qualquer bloqueio.

Observação

Por padrão, a permissão UnlockOther é concedida apenas a administradores. Se você tiver a permissão UnlockOther, você poderá remover um bloqueio de um item no workspace de outro usuário usando o comando Lock.