锁定命令 (Team Foundation 版本控制)

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

Visual Studio 2019 |Visual Studio 2022

Team Foundation 版本控制(TFVC)lock 命令锁定或解锁文件或文件夹。 该命令拒绝或还原用户有权签出项目以编辑到其他工作区,或者签入对来自不同工作区的项的挂起更改。

先决条件

若要使用 lock 命令,请将 锁定 权限设置为 “允许”。 如果你没有该用户的工作区 写入 权限,则需要 解锁其他用户 权限设置为 “允许”删除其他用户持有的锁。 有关详细信息,请参阅 默认 TFVC 权限

语法

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

参数

参数

参数

说明

<itemspec>

标识要锁定或解锁的文件或文件夹。 若要详细了解 TFVC 如何分析 itemspec 以确定哪些项在范围内,请参阅 使用选项来修改命令如何

注意

可以指定多个 itemspec 参数。

<workspacename>

/workspace 选项的用户提供的值。

<username>

/login 选项提供值。 可以将 username 值指定为 DOMAIN\usernameusername

<TeamProjectCollectionUrl>

包含要锁定或解锁的文件或文件夹的项目集合的 URL,例如 http://myserver:8080/tfs/DefaultCollection

选项

选项

说明

/lock

指定锁类型或从项中删除锁。 有关详细信息,请参阅 了解锁类型

锁定选项:

  • None:从项中删除锁。

  • Checkin:允许在所有工作区中签出和编辑项目,但阻止用户签入对指定 /workspace 之外的项的更改,直到显式释放签入锁。 如果在任何其他工作区中锁定指定项,则锁定操作将失败。

  • Checkout:阻止用户签入或签出指定项,直到显式释放锁。 如果用户锁定了任一指定项,或者存在针对任一项的挂起更改,则锁定操作将失败。

/workspace

指定要在其中应用锁的其他工作区的名称。 默认情况下,锁在当前所在的工作区中应用。

/login

指定使用 Azure DevOps 对用户进行身份验证的用户名和密码。

/collection

指定项目集合。

言论

可以使用 lock 命令暂时冻结项的 TFVC 服务器版本,以便签入挂起的更改,而无需解决任何合并冲突。 如果要永久阻止访问 TFVC 服务器中的项,则应改为使用 Permission 命令

注意

作为对队友的礼貌,在向项目应用锁时通知他们,解释你这样做的原因,并估算何时计划删除锁(如果可以)。

有关如何使用 tf 命令行实用工具的详细信息,请参阅 使用 Team Foundation 版本控制命令

如何锁定项

可以使用 lock 命令锁定项,也可以在其他几个 tf 命令行实用工具命令的委托过程中指定 lock 选项,包括:

对于 addbranch,锁定位于将创建新项的命名空间中。 放置在 rename 锁同时应用于旧命名空间和新命名空间。 有关详细信息,请参阅 锁定和解锁文件夹或文件

锁定类型

TFVC 提供两种类型的锁:checkincheckout

签入锁的限制低于签出锁。 应用签入锁时,用户可以继续对其他工作区中的项进行本地更改。 在从工作区中显式删除签入锁之前,无法签入更改。

签出锁比签入锁更严格。 将签出锁应用于版本控制的文件或文件夹时,用户既无法签出项目进行编辑,也不能签入预先存在的挂起更改。 如果项目当前有任何挂起的更改,则无法获取签出锁。

有关何时应用签出锁以及何时应用签入锁的详细信息,请参阅 了解锁类型

锁定的工作原理

如果锁定文件时已签出文件,则会将其状态修改为包含新锁类型。 如果未签出文件,则会将 更改添加到挂起的工作区更改集中。 与 checkout 命令不同,lock 不会自动使文件可编辑。

文件夹上的锁是隐式递归的。 如果锁定文件夹,则无需锁定它包含的文件,除非你想要将限制性更高的签出锁应用于具有签入锁的文件夹中的文件。

解锁项目

可以使用 none 选项解锁锁定的项目。 签入工作区中挂起的更改时,TFVC 还会自动解锁项目。

可以使用 Status 命令来确定哪些文件在 TFVC 服务器中锁定,以及文件被锁定者。

例子

以下示例阻止其他用户签出 314.cs

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

以下示例阻止其他用户签入对 1256.cs 的更改,但允许他们在工作区中签出更改。

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

以下示例阻止其他用户在 TFVC 服务器中 $/src 文件夹中挂起对任何项目的更改。

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

以下示例解锁并让 $/src TFVC 服务器文件夹中的所有文件可供其他用户签出和签入。

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