有人离开了组织,但在离开之前,他出于一个未知的原因锁定了所有文件。
你如何解锁所有这些以便其他开发人员可以工作?
对于以下操作,如果要在所有项目中执行此操作,则需要是要撤消签入的项目的项目管理员或Team Foundation Administrator。
如果您仍然拥有此人的用户名,则可以执行以下操作:
tf lock / lock:none / workspace:WorkspaceName; USERNAME / recursive $ /
要获取用户的工作空间列表,只需从同一提示符运行以下命令:
tf工作区/所有者:用户名
有关更多命令,请检查tf /?
对我有效的方法,我的帐户拥有TFS和项目的管理员权限:
在Visual Studio 2015中:
现在,每个开发人员都可以轻松地提交他的更改:)
使用此解决方案作为最后的手段。
我正在使用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>>
如果开发人员离开了组织,那么最好的办法就是删除他们的工作区。这将为您解锁文件,但也释放服务器上的一些资源。
几年前发生在我身上时,请参阅以下博客文章。
http://www.woodwardweb.com/vsts/unlocking_files.html
您可以使用命令行(tf.exe)删除工作区,也可以使用Attrice的优秀TFS Sidekicks。
这是解决这个问题的唯一方法,包括删除用户的工作区。
如果错误消息显示“$ 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
,因为有一个类似的复数命令。
首先,你需要有权这样做。如果你有最简单的方法是使用来自attrice http://www.attrice.info/cm/tfs/的TFS sidekicks
我需要添加/ collection:collectionURL否则无法找到工作区:
tf loc / lock:none / workspace:WorkspaceName; UserName / collection:collectionURL
Here's解释使用TFS权限。
将“解锁其他用户的更改”权限设置为“允许”需要删除其他用户持有的锁。
让系统管理员重置该用户密码,以该用户身份登录,解锁所有文件......
我认为这是解决几乎所有'不再是这个组织'问题的人的问题......
最好从服务器中删除该用户的工作区。例
tf workspace / delete / server:your_tfs_server workspace; username
有时这会掩盖一个不同的问题,一个完全不同的应用程序被另一个用户锁定,但你甚至无法为你希望合并到的新项目创建一个新文件夹(目标将不允许创建并错误地声明某人有一个文件锁定在他们的名字)但随后你深入挖掘,另一个项目是罪魁祸首。
因此,一个完全不同的项目可能是其他人锁定文件的问题。