74

我们有一个项目存储在我们的 TFS 服务器中,并且我从另一台计算机和另一个用户中签出了一些文件(两者都不再使用)。有没有办法强制解锁文件(没有对其进行任何更改,所以如果我只能这样做,这样做是安全的)。

4

12 回答 12

121

这是我在 Visual Studio 2012 中所做的

(注意:我安装了 TFS 电动工具,因此如果您没有看到所描述的选项,您可能需要安装它们。http: //visualstudiogallery.msdn.microsoft.com/b1ef7eb2-e084-4cb8-9bc7-06c3bad9148f

如果您作为团队项目管理员(或至少具有“撤消其他用户的更改”访问权限的人)访问源代码管理资源管理器,则可以在 Visual Studio 2012 中执行以下操作以清除锁定和签出。

  1. 从源代码管理资源管理器中找到包含锁定文件的文件夹。
  2. 右键单击并选择查找,然后按状态查找...
  3. 出现“在源代码管理中查找”窗口
  4. 单击查找按钮
  5. 应出现“在源代码管理中查找”选项卡,显示已签出的文件
  6. 右键单击要解锁的文件
  7. 从上下文菜单中选择撤消...
  8. 出现一个确认对话框。单击按钮。
  9. 该文件应该从“在源代码管理中查找”窗口中消失。

该文件现在已解锁。

于 2013-07-25T23:12:14.487 回答
43

您可以使用 TFS Sidekicks 工具的 Status Sidekick 并解锁其他用户签出的文件。为此,您应该是该特定团队项目的管理员组的一部分(或)您的组应该有权撤消和解锁默认管理员组具有的其他用户更改。

您可以在此处获取该工具:http: //www.attrice.info/cm/tfs/

于 2010-08-11T07:20:47.083 回答
36

我可以使用以下命令撤消其他用户的结帐:

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 博客获得此信息

于 2011-11-04T23:38:34.443 回答
22

Team Foundation Sidekicks有一个 Status sidekick,允许您查询签出的工作项。选择工作项后,单击工具栏上的“撤消锁定”按钮。

权利

请记住,您将需要适当的权利。这些权限称为“撤消其他用户的更改”和“解锁其他用户的更改”。可以通过以下方式查看这些权限:

  1. 在源代码管理资源管理器中右键单击所需的项目、文件夹或文件
  2. 选择属性
  3. 选择安全选项卡
  4. 在顶部的“用户和组”部分中选择适当的用户或组
  5. 查看底部的“[用户/组]的权限:”部分

使用 Team Foundation Sidekicks 解锁文件的屏幕截图

免责声明:此答案是对 Brett Roger对类似问题的回答的编辑转发。

于 2013-01-28T15:20:07.457 回答
14

我用 TFS powertools 解决了这个问题(2011 年 12 月 - 对于 VS 2010 TFS 2010)

http://visualstudiogallery.msdn.microsoft.com/c255a1e4-04ba-4f68-8f4e-cd473d6b971f

在源代码管理中查找 | 状态...允许您查找签出给特定人员的所有文件

右键单击和 UNDO... 可以删除每个结帐。

于 2013-09-16T14:00:53.443 回答
13

如果您使用管理员帐户登录源代码管理,您将能够强制撤消签出,或使用您提供的任何文件签入。

于 2010-08-10T17:34:41.853 回答
6

基于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
于 2012-02-23T04:03:23.610 回答
4

Team Foundation Sidekicks 对我来说效果很好。

该文件没有解锁,所以我对挂起的更改进行了撤消,之后我可以删除该文件。

于 2013-02-07T17:39:50.333 回答
2

2019 年的答案,因为上述大部分内容已被弃用。

tf undo /workspace:"hostname;username" "$/path/*" /s:https://yourhostname/tfs在提升的命令提示符下,从路径如 C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE>

于 2019-09-19T09:08:54.450 回答
1

使用 TFS 自带的解锁命令

  1. 单击开始,单击所有程序,单击 Microsoft Visual Studio 2008,单击 Visual Studio 工具,然后单击 Visual Studio 命令提示符。
  2. 键入以下命令并将参数替换为您需要的适当参数信息: tf lock /lock:none $/MyTeamProject/web.config

    tf lock itemspec /lock:(none|checkout|checkin) [/workspace:workspacename] [/recursive] [/login:username,[password]] [/collection:TeamProjectCollectionUrl]

来自MSDN

于 2016-08-30T21:11:16.570 回答
1

您需要是项目管理员或拥有锁定文件的用户的 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"
于 2020-07-11T20:56:47.997 回答
0

就我而言,我尝试使用 解锁文件,tf lock但被告知我不能,因为不再存在的旧计算机上的陈旧工作区是本地工作区。然后我尝试使用 删除工作区tf workspace /delete,但删除工作区并没有删除锁定(然后我无法再次尝试解锁它,因为我刚刚收到一个错误说工作区不再存在)。

我最终选择了tf destroy该文件并再次签入,这非常愚蠢,并且产生了从以前的变更集中删除它的不良影响,但至少让我们再次工作。在这种情况下,这没什么大不了的,因为文件自签入以来从未更改过。

于 2020-02-20T14:30:33.690 回答