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

Azure DevOps Services | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018

Visual Studio 2022 |Visual Studio 2019 |Visual Studio 2017 |Visual Studio 2015 |Visual Studio 2013

锁定命令锁定或解锁文件或文件夹,以拒绝或还原用户的权限,以签出项目以编辑到其他工作区,或签入对来自不同工作区的项目的挂起更改。

先决条件

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

语法

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

参数

参数

Argument

说明

itemspec

标识要锁定或解锁的文件或文件夹。 有关 Team Foundation 如何分析 itemspecs 以确定哪些项目在范围内的详细信息,请参阅 使用 Team Foundation 版本控制命令、使用选项修改命令功能的方式

注意

可以指定多个 Itemspec 参数。

workspacename

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

username

提供 /login 选项的值。 可以将用户名值指定为 DOMAINemUserName <>或 UserName。

TeamProjectCollectionUrl

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

选项

选项

说明

/lock

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


  • 从项中删除锁。

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

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

/workspace

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

/login

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

/collection

指定项目集合。

注解

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

注意

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

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

如何锁定项目

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

对于添加和分支,锁定位于将在其中创建新项的命名空间上。 放置有重命名的锁同时适用于旧命名空间和新命名空间。 有关详细信息,请参阅 锁定和解锁文件夹或文件

锁类型

Team Foundation 提供两种类型的锁: 签入签出

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

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

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

锁定的工作原理

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

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

解锁项目

可以使用 “无 ”选项解锁锁定的项目。 此外,当签入工作区中挂起的更改时,Team Foundation 会自动解锁项目。

你可以确定在 Team Foundation 版本控制服务器中锁定哪些文件,以及使用 状态命令锁定文件的文件。

示例

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

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

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

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

以下示例阻止其他用户挂起对 Team Foundation 版本控制服务器 src/文件夹中任何项目的更改。

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

以下示例解锁并让 src/Team Foundation 版本控制服务器文件夹中的所有文件可供其他用户签出和签入。

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