有人离开了公司,但在离开前出于未知原因锁定了所有文件。
如何解锁它们以便其他开发人员可以工作?
有人离开了公司,但在离开前出于未知原因锁定了所有文件。
如何解锁它们以便其他开发人员可以工作?
执行以下操作时,您需要成为要撤消检入的项目的项目管理员或者如果想在所有项目中执行此操作,则需要成为Team Foundation管理员。
如果您仍然知道该人员的用户名,可以简单地执行以下操作:
tf lock /lock:none /workspace:WorkspaceName;USERNAME /recursive $/
要获取用户的工作区列表,请从同一个提示符下运行以下命令:
tf workspaces /owner:username
有关更多命令,请查看tf /?
如果开发人员已经离开组织,最好的做法是删除他们的工作区。这将为您解锁文件,也会释放服务器上的一些资源。
请参阅我在几年前遇到此问题时所写的以下博客文章。
http://www.woodwardweb.com/vsts/unlocking_files.html
您可以使用命令行(tf.exe)删除工作区,也可以使用Attrice的优秀TFS Sidekicks。
这是我解决这个问题的唯一方法,需要删除用户的工作区。
如果错误信息显示为“项目 $/...在某个机器123的工作区中被someUser:1锁定以进行签出”,那么我使用以下命令:
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的TFS Sidekicks http://www.attrice.info/cm/tfs/
我需要添加/collection:collectionURL,否则工作区无法找到:
tf loc /lock:none /workspace:WorkspaceName;UserName /collection:collectionURL
有时候,这个问题可能是掩盖了另一个不同的问题,即完全不同的应用程序被其他用户锁定了,但您甚至无法为您希望合并到其中的新项目创建一个新文件夹(目标不允许创建并错误地声明某人已经在他们的名称下锁定了文件),但随后您深入挖掘,发现还有另一个项目是罪魁祸首。
因此,完全不同的项目可能会出现由他人锁定文件的问题。
最好从服务器上删除该用户的工作区。例如:
tf workspace /delete /server:your_tfs_server workspace;username
请系统管理员重置该用户的密码,以该用户身份登录,解锁所有文件...
我认为这几乎是所有“已不在此组织中”的问题的解决方案...
通过使用TFS权限, 打开Visual Studio命令提示符,运行以下命令:
tf undo /workspace:workspaceName;DomainName\UserName $/file path in your solution
tf lock /lock:none /login:... /workspace:... <filename>
,但是它返回了一个错误:“必须保持锁定状态,因为该文件类型防止多次签出”。 - Peet Britstf undo
命令解决了它。 - Peet Brits