lock 命令(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] 

参数

参数

Argument

说明

<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