Présentation des types de verrou

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

Vous pouvez utiliser la commande Team Foundation Version Control (TFVC) lock pour empêcher temporairement les modifications apportées à un fichier ou dossier particulier dans le serveur de contrôle de code source. Cette fonctionnalité peut être utile si vous souhaitez modifier un élément dans votre espace de travail, puis l’archiver sans être obligé de résoudre les conflits de fusion. Un seul utilisateur à la fois peut contenir un verrou sur un fichier ou un dossier particulier. Si vous souhaitez bloquer l’accès à un élément de manière persistante, vous devez utiliser la commande Permission à la place.

Types de verrou

Azure DevOps fournit deux types de verrous : verrous d’archivage et verrous d’extraction.

Verrou d’archivage

Un verrou d’archivage est moins restrictif qu’un verrou d’extraction. Lorsque vous appliquez un verrou d’archivage, les utilisateurs peuvent continuer à apporter des modifications locales à l’élément verrouillé dans d’autres espaces de travail. Toutefois, ces modifications ne peuvent pas être archivées tant que vous n’avez pas supprimé le verrou en effectuant l’une des actions suivantes :

  • Supprimer explicitement le verrou d’archivage de l’élément
  • Supprimez implicitement le verrou en vérifiant vos modifications apportées au fichier

Verrou d’extraction

Dans Azure DevOps, les verrous d’extraction ne sont généralement pas efficaces en raison des espaces de travail locaux. Pour plus d’informations, consultez Choisir entre l’utilisation d’un espace de travail local ou d’un espace de travail de serveur. Plus précisément, les verrous d’extraction sont les suivants :

  • Non applicable, car d’autres utilisateurs peuvent utiliser des espaces de travail locaux.
  • Non disponible si vous utilisez un espace de travail local.
  • Désactivé si un membre du groupe de sécurité Administrateurs de votre collection de projets a activé l’extraction asynchrone pour les espaces de travail serveur de votre équipe.

Un verrou d’extraction empêche les utilisateurs qui utilisent des espaces de travail serveur d’extraire et d’apporter des modifications à l’élément verrouillé dans leurs espaces de travail. Vous ne pouvez pas appliquer de verrou d’extraction à un élément pour lequel des modifications en attente existent, dans un espace de travail autre que votre propre espace de travail.

Fonctionnement du verrouillage

Si un fichier est extrait lorsque vous le verrouillez, son enregistrement d’extraction est modifié pour contenir le nouveau type de verrou. Si le fichier n’est pas extrait, une modification de verrou est ajoutée à l’ensemble des modifications d’espace de travail en attente. Contrairement à la commande checkout, la commande lock ne rend pas automatiquement modifiable un fichier.

TFVC déverrouille automatiquement un élément lorsque vous archivez les modifications en attente dans l’espace de travail où il est verrouillé. Les verrous sont également libérés si les modifications en attente d’un fichier sont annulées à l’aide de la commande undo.

Les verrous sur les dossiers sont implicitement récursifs. Si vous verrouillez un dossier, vous n’avez pas besoin de verrouiller les fichiers qu’il contient. Une exception est lorsqu’un dossier a un verrou d’archivage, qui est moins restrictif qu’un verrou d’extraction. Si vous souhaitez utiliser un verrou d’extraction sur un fichier dans ce dossier, vous devez appliquer ce verrou d’extraction.

Un seul utilisateur à la fois peut contenir un verrou sur un fichier ou un dossier particulier. Vous pouvez utiliser la commande Status pour voir quels fichiers sont verrouillés dans le serveur Azure DevOps et qui les a verrouillés.

Un verrou peut être placé en tant que sa propre opération ou dans le cadre de plusieurs autres opérations. Ces opérations incluent rename, checkout, delete, undelete, merge, branch et add. Lorsque vous verrouillez un élément dans le cadre de l’ajout au contrôle de code source ou à la branche, TFVC place le verrou sur le chemin du serveur où le nouvel élément est créé. Ce placement empêche un autre utilisateur d’ajouter ou de brancher un fichier au même emplacement. Lorsque vous verrouillez un élément à l’aide de la commande rename, les chemins d’accès anciens et nouveaux serveurs sont verrouillés.

Déverrouiller un élément

Vous pouvez déverrouiller un élément explicitement à l’aide de la commande unlock ou implicitement lors de l’archivage. Lorsque vous archivez les modifications en attente d’un élément verrouillé, Azure DevOps supprime tous les verrous.

Notes

Par défaut, l’autorisation UnlockOther est accordée aux administrateurs uniquement. Si vous disposez de l’autorisation UnlockOther, vous pouvez supprimer un verrou d’un élément dans l’espace de travail d’un autre utilisateur à l’aide de la commande Lock.