了解锁定类型
您可以使用锁定命令暂时禁止更改源代码管理服务器中的特定文件或文件夹。 如果您要更改工作区中的某一项,并且之后无需解决任何合并冲突就可执行签入,则这可能十分有用。 一次只能有一个用户持有对特定文件或文件夹的锁定。 如果您希望始终禁止访问某一项,应改用 Permission Command。
锁类型
Team Foundation 提供了两种锁定:签入锁定和签出锁定。
签入锁
签入锁的限制少于签出锁。 当您应用签入锁时,用户可以继续在其他工作区中对项进行本地更改。 但不能签入这些更改,除非您从该项显式移除了签入锁或者通过将您的更改签入到该文件而隐式移除了该锁。
签出锁
在Visual Studio Team Foundation Server 2012中,由于在本地工作区,签出锁通常是无效的(详见决定使用本地还是服务器工作区)。 具体而言,签出锁是:
不可执行文件,因为其他用户可能使用本地工作区域。
是不可用的,如果您使用本地工作区域。
禁用的,如果您的团队项目集合的管理员安全组的成员启用了团队的服务器工作区域的异步签出。
签出锁阻止正在使用服务器工作区域的用户在其工作区域内签出并更改该锁定项。 您只能在您自己的工作区中对存在任何挂起的更改的项应用签出锁。
锁定的工作方式
如果在锁定某一文件时对该文件执行签出操作,则将修改其签出记录以包含新的锁定类型。 如果未签出文件,则“锁定”更改将添加到挂起的工作区变更集内。 锁定命令与签出命令不同,前者不会自动使文件变得可编辑。
当您在锁定某项的工作区中签入挂起的更改时,Team Foundation 会自动取消该项的锁定。 如果使用撤消命令撤消对文件挂起的更改,也会释放锁。
文件夹上的锁是隐式递归的。 如果锁定某个文件夹,则无需锁定该文件夹包含的文件,除非您希望对具有签入锁的文件夹中的某个文件应用限制更严格的签出锁。
一次只能有一个用户持有对特定文件或文件夹的锁定。 可以通过使用 Status 命令了解在 Team Foundation 版本控制服务器中锁定了哪些文件以及这些文件是由谁锁定的。
可将锁作为其自己的操作或一些其他操作的一部分进行放置。 这些操作包括重命名、签出、删除、撤消删除、合并、分支和添加到源代码管理。 作为添加到源代码管理或分支操作的一部分锁定某一项时,Team Foundation 会将该锁定放在将在其中创建新项的服务器路径中。 这样可防止其他用户将文件添加或分支到同一位置。 使用重命名命令锁定某一项时,将同时锁定旧的和新的服务器路径。
取消锁定项
可以通过使用取消锁定命令显式取消锁定某一项,也可以在签入时隐式取消锁定。 在签入对锁定项的挂起的更改时,Team Foundation 会移除所有锁。
备注
默认情况下,只将 UnlockOther 权限授予管理员。如果您具有 UnlockOther 权限,则可以通过使用 Lock Command从其他用户的工作区中移除项锁定。