我们有一个项目存储在我们的 TFS 服务器中,并且我从另一台计算机和另一个用户中签出了一些文件(两者都不再使用)。有没有办法强制解锁文件(没有对其进行任何更改,所以如果我只能这样做,这样做是安全的)。
12 回答
这是我在 Visual Studio 2012 中所做的
(注意:我安装了 TFS 电动工具,因此如果您没有看到所描述的选项,您可能需要安装它们。http: //visualstudiogallery.msdn.microsoft.com/b1ef7eb2-e084-4cb8-9bc7-06c3bad9148f)
如果您作为团队项目管理员(或至少具有“撤消其他用户的更改”访问权限的人)访问源代码管理资源管理器,则可以在 Visual Studio 2012 中执行以下操作以清除锁定和签出。
- 从源代码管理资源管理器中找到包含锁定文件的文件夹。
- 右键单击并选择查找,然后按状态查找...
- 出现“在源代码管理中查找”窗口
- 单击查找按钮
- 应出现“在源代码管理中查找”选项卡,显示已签出的文件
- 右键单击要解锁的文件
- 从上下文菜单中选择撤消...
- 出现一个确认对话框。单击是按钮。
- 该文件应该从“在源代码管理中查找”窗口中消失。
该文件现在已解锁。
您可以使用 TFS Sidekicks 工具的 Status Sidekick 并解锁其他用户签出的文件。为此,您应该是该特定团队项目的管理员组的一部分(或)您的组应该有权撤消和解锁默认管理员组具有的其他用户更改。
您可以在此处获取该工具:http: //www.attrice.info/cm/tfs/
我可以使用以下命令撤消其他用户的结帐:
tf undo {file path} /workspace:{workspace};{username}
如果您从 PowerShell 运行命令,则需要将该分号用双引号括起来。我们正在运行 TFS 2010(和 VS 2010)。
免责声明:我从位于http://fci-h.blogspot.com/2011/01/how-to-force-undo-checkout-tfs.html的 FCI-H 博客获得此信息
Team Foundation Sidekicks有一个 Status sidekick,允许您查询签出的工作项。选择工作项后,单击工具栏上的“撤消锁定”按钮。
权利
请记住,您将需要适当的权利。这些权限称为“撤消其他用户的更改”和“解锁其他用户的更改”。可以通过以下方式查看这些权限:
- 在源代码管理资源管理器中右键单击所需的项目、文件夹或文件
- 选择属性
- 选择安全选项卡
- 在顶部的“用户和组”部分中选择适当的用户或组
- 查看底部的“[用户/组]的权限:”部分
我用 TFS powertools 解决了这个问题(2011 年 12 月 - 对于 VS 2010 TFS 2010)
http://visualstudiogallery.msdn.microsoft.com/c255a1e4-04ba-4f68-8f4e-cd473d6b971f
在源代码管理中查找 | 状态...允许您查找签出给特定人员的所有文件
右键单击和 UNDO... 可以删除每个结帐。
如果您使用管理员帐户登录源代码管理,您将能够强制撤消签出,或使用您提供的任何文件签入。
基于stackptr答案我创建了批处理文件 UnlockOther.bat
@rem from https://stackoverflow.com/questions/3451637/how-to-unlock-a-file-from-someone-else-in-team-foundation-server
@rem tf undo {file path} /workspace:{workspace};{username
call "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" x86
@echo on
tf undo $/MyTfsProject/path/fileName.ext /workspace:CollegeMachine;CollegueName /login:MyLogin
@pause
Team Foundation Sidekicks 对我来说效果很好。
该文件没有解锁,所以我对挂起的更改进行了撤消,之后我可以删除该文件。
2019 年的答案,因为上述大部分内容已被弃用。
tf undo /workspace:"hostname;username" "$/path/*" /s:https://yourhostname/tfs
在提升的命令提示符下,从路径如
C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE>
使用 TFS 自带的解锁命令
- 单击开始,单击所有程序,单击 Microsoft Visual Studio 2008,单击 Visual Studio 工具,然后单击 Visual Studio 命令提示符。
键入以下命令并将参数替换为您需要的适当参数信息:
tf lock /lock:none $/MyTeamProject/web.config
tf lock itemspec /lock:(none|checkout|checkin) [/workspace:workspacename] [/recursive] [/login:username,[password]] [/collection:TeamProjectCollectionUrl]
来自MSDN。
您需要是项目管理员或拥有锁定文件的用户的 tfs 帐户(用户名/密码)。
在 Visual Studio 2019 中:
- 菜单 > 视图 > 终端(ctrl+`)
- 等到开发人员 powershell 或命令提示符加载到光标,如下所示:
Drive:\your solution path>
- 您必须撤消更改才能解锁文件:
tf vc undo /workspace:"workspacename;worksapceowner" "$/path/[file.extension][*]" [/recursive] [/login:"user name,password"]
例如:-
tf vc undo /workspace:"DESKTOP-F6BN2GHTKQ8;Johne123" "$/mywebsite/mywebsite/appsettings.json"
就我而言,我尝试使用 解锁文件,tf lock
但被告知我不能,因为不再存在的旧计算机上的陈旧工作区是本地工作区。然后我尝试使用 删除工作区tf workspace /delete
,但删除工作区并没有删除锁定(然后我无法再次尝试解锁它,因为我刚刚收到一个错误说工作区不再存在)。
我最终选择了tf destroy
该文件并再次签入,这非常愚蠢,并且产生了从以前的变更集中删除它的不良影响,但至少让我们再次工作。在这种情况下,这没什么大不了的,因为文件自签入以来从未更改过。