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

时间:2008-11-06 14:28:18

标签: version-control command-line tfs administration

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

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

11 个答案:

答案 0 :(得分:55)

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

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

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

锁定/锁定:无   /工作区:工作区名; USERNAME   / recursive $ /

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

  

tf workspaces / owner:username

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

答案 1 :(得分:33)

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

请参阅我几年前发生在我身上的关于这个主题的博客文章。

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

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

答案 2 :(得分:7)

这是我解决此问题的唯一方法,其中包括删除用户的工作区:

http://2toad.com/Blog/2012/1/27/how-to-manage-tfs-workspaces

如果错误消息显示“项目$ / ...已被某些用户检查失败:工作区someMachine123中的某些用户:1”。然后我使用命令:

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

收集网址与someMachine123;someUser:1之间只有一个空格。

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

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

我也遇到了问题,因为我偶然尝试使用复数workspaces而不是workspace,因为有一个类似的复数命令。

答案 3 :(得分:6)

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

中的TFS sidekicks

答案 4 :(得分:1)

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

  • 列表项

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

答案 5 :(得分:0)

Here's使用TFS权限的说明。

  

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

答案 6 :(得分:0)

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

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

答案 7 :(得分:0)

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

tf workspace / delete / server:your_tfs_server workspace; username

答案 8 :(得分:0)

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

因此,一个完全不同的项目可能会导致其他人锁定文件。

答案 9 :(得分:0)

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

在Visual Studio 2015中:

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

现在,每个开发人员都可以轻松地进行更改:)

答案 10 :(得分:-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>>