如果TFS中的文件被其他人锁定,您会怎么做?

问题描述 投票:57回答:11

有人离开了组织,但在离开之前,他出于一个未知的原因锁定了所有文件。

你如何解锁所有这些以便其他开发人员可以工作?

version-control command-line tfs administration
11个回答
55
投票

对于以下操作,如果要在所有项目中执行此操作,则需要是要撤消签入的项目的项目管理员或Team Foundation Administrator。

如果您仍然拥有此人的用户名,则可以执行以下操作:

  • 打开Visual Studio命令提示符(开始 - >程序 - > Microsoft Visual Studio 200X - > Visual Studio工具 - > Visual Studio 200X命令提示符)
  • 运行以下命令:

tf lock / lock:none / workspace:WorkspaceName; USERNAME / recursive $ /

要获取用户的工作空间列表,只需从同一提示符运行以下命令:

tf工作区/所有者:用户名

有关更多命令,请检查tf /?


0
投票

对我有效的方法,我的帐户拥有TFS和项目的管理员权限:

在Visual Studio 2015中:

  1. 转到团队资源管理器
  2. 单击解决方案右键,然后选择在源代码管理资源管理器中打开
  3. 在左侧单击解决方案右侧
  4. 选择高级
  5. 选择锁定......
  6. 在左侧单击解决方案右侧
  7. 选择高级
  8. 选择解锁(现在你可以选择解锁)

现在,每个开发人员都可以轻松地提交他的更改:)


-3
投票

使用此解决方案作为最后的手段。

我正在使用TFS 2012.我去了TFS数据库并运行了以下查询。它奏效了!在弄乱数据库,进行备份等时要非常小心。

该数据库名为Tfs _ << your_TFS_collection_name >>。忽略Tfs_Configuration MSSQL数据库。我不确定,但如果您没有Tfs _ << your_TFS_collection_name >>数据库,则设置可能位于Tfs_DefaultCollection数据库中。锁存储在tbl_PendingChange.LockStatus中。

/*Find correct row*/
SELECT LockStatus, PendingChangeId, *
FROM tbl_PendingChange
WHERE TargetServerItem like '%<<fileName>>%'

/*Set lock status to NULL (mine was set to 2 initially)*/
UPDATE tbl_PendingChange SET LockStatus = NULL WHERE
TargetServerItem like '%<fileName>>%'
AND PendingChangeId = <<PendingChangeId from above>>

33
投票

如果开发人员离开了组织,那么最好的办法就是删除他们的工作区。这将为您解锁文件,但也释放服务器上的一些资源。

几年前发生在我身上时,请参阅以下博客文章。

http://www.woodwardweb.com/vsts/unlocking_files.html

您可以使用命令行(tf.exe)删除工作区,也可以使用Attrice的优秀TFS Sidekicks


7
投票

这是解决这个问题的唯一方法,包括删除用户的工作区。

如果错误消息显示“$ US ...被锁定以便由someUser:1在工作区someMachine123中签出。”然后我使用命令:

tf workspace /delete /server:http://machinename:8080/tfs/DefaultCollection someMachine123;someUser:1

集合URL和someMachine123;someUser:1之间只有一个空格。

请注意,我注意到错误消息将用户称为someUser:1,因此我在命令中模仿了这一点。仅使用someUser运行命令是不够的。我不确定:1是什么,但指向存在,模仿错误信息。

请注意,服务器必须是完全限定的收集路径,您可以通过转到Team Foundation Server管理控制台 - >应用程序层 - >团队项目集合找到它,底部窗格将显示在上部选择的集合的URL窗格。

我也有一个问题因为我不小心尝试使用复数workspaces而不仅仅是workspace,因为有一个类似的复数命令。


6
投票

首先,你需要有权这样做。如果你有最简单的方法是使用来自attrice http://www.attrice.info/cm/tfs/的TFS sidekicks


1
投票

我需要添加/ collection:collectionURL否则无法找到工作区:

  • 项目清单

tf loc / lock:none / workspace:WorkspaceName; UserName / collection:collectionURL


0
投票

Here's解释使用TFS权限。

将“解锁其他用户的更改”权限设置为“允许”需要删除其他用户持有的锁。


0
投票

让系统管理员重置该用户密码,以该用户身份登录,解锁所有文件......

我认为这是解决几乎所有'不再是这个组织'问题的人的问题......


0
投票

最好从服务器中删除该用户的工作区。例

tf workspace / delete / server:your_tfs_server workspace; username


0
投票

有时这会掩盖一个不同的问题,一个完全不同的应用程序被另一个用户锁定,但你甚至无法为你希望合并到的新项目创建一个新文件夹(目标将不允许创建并错误地声明某人有一个文件锁定在他们的名字)但随后你深入挖掘,另一个项目是罪魁祸首。

因此,一个完全不同的项目可能是其他人锁定文件的问题。

© www.soinside.com 2019 - 2024. All rights reserved.