Lock 命令
更新:2007 年 11 月
锁定或取消锁定文件或文件夹,以拒绝或还原用户将要编辑的项签出到其他工作区的权限,或从其他工作区签入对项的挂起的更改的权限。
必需的权限
若要使用 lock 命令,您必须将“锁”权限设置为“允许”。如果您对其他用户的工作区不具备“写入”权限,则必须将“取消锁定其他用户的更改”权限设置为“允许”才能移除该用户持有的锁。有关更多信息,请参见 Team Foundation Server 权限。
tf lock itemspec /lock:(none|checkout|checkin)
[/workspace:workspacename] [/server:servername] [/recursive]
参数
参数 |
说明 |
---|---|
itemspec |
标识要锁定或取消锁定的文件或文件夹。有关 Team Foundation 如何分析项规范以确定哪些项在范围之内的更多信息,请参见命令行选项。 |
workspacename |
用户提供的 /workspace 选项的值。 |
servername |
用户提供的 /server 选项的值。示例:http://teamfoundation2:8080/。 |
选项 |
说明 |
---|---|
/lock |
指定锁类型或从项中移除锁。有关更多信息,请参见了解锁定类型。 锁定选项:
|
/workspace |
指定要在其中应用锁定的另一个工作区的名称。默认情况下,会向您当前所在的工作区应用锁定。 |
/server |
指定要使用的 Team Foundation 版本控制 服务器的 URL。如果从未映射到工作区的目录调用命令,则此选项是必需的。 |
备注
可以使用 lock 命令暂时冻结一个项的 Team Foundation 版本控制 服务器版本,这样无需解决任何合并冲突即可签入挂起的更改。如果您希望永久阻止对 Team Foundation 版本控制 服务器中的某个项的访问,则应改用 Permission 命令。
说明: |
---|
为表示对团队成员的尊重,在您对某个项应用锁定时,请通知他们并解释您这样做的原因,并在可能的情况下估计您打算移除锁定的时间。 |
有关如何查找 tf 命令行实用工具的更多信息,请参见 Tf 命令行实用工具命令。
如何锁定项
可以使用 lock 命令或通过在执行 tf 命令行实用工具的多个其他命令期间指定锁定选项来锁定某个项,这些命令包括:
对于添加和分支操作,锁放置在将创建新项的命名空间上。因重命名而放置的锁将同时应用于旧命名空间和新命名空间。有关更多信息,请参见如何:锁定和取消锁定文件夹或文件。
锁类型
Team Foundation 提供两种锁类型:checkin 和 checkout。
签入锁的限制少于签出锁。当您应用签入锁时,用户可以继续在其他工作区中对项进行本地更改。在您从工作区显式移除签入锁之前,无法签入这些更改。
签出锁的限制多于签入锁。当您将签出锁应用于受版本控制的文件或文件夹时,用户既无法签出文件以进行编辑,也无法签入预先存在的挂起的更改。如果当前存在对某个项的任何挂起的更改,您将无法获取签出锁。
有关何时应用签出锁以及何时应用签入锁的更多信息,请参见了解锁定类型。
锁定的工作方式
如果您在锁定一个文件时签出了该文件,则会修改该文件的状态以包含新的锁类型。如果未签出文件,则“锁定”更改将添加到挂起的工作区变更集内。与 checkout 命令不同,lock 不会自动使文件变为可编辑的文件。
文件夹上的锁是隐式递归的。如果锁定某个文件夹,则无需锁定该文件夹包含的文件,除非您希望对具有签入锁的文件夹中的某个文件应用限制更严格的签出锁。
取消锁定项
您可以使用 none 选项来取消锁定已锁定的项。此外,当您签入工作区中挂起的更改时,Team Foundation 会自动取消对项的锁定。
您可以使用 Status 命令 确定哪些文件在 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/