如何在TFS中撤销另一个用户的检出?

103
作为常驻的 TFS 管理员,有时候会被要求取消某个用户在源代码控制中检入的某个文件上的锁定(通常是一个检出)。
如何取消另一个用户的检出?
4个回答

155

至少有2种不同的方法可以实现这个:

命令行

有一个名为Tf.exe的命令行实用程序附带于Team Explorer中。您可以在此处找到文档(链接)。它可以通过启动Visual Studio命令提示窗口来访问。该命令的语法是:

tf undo [/workspace:workspacename[;workspaceowner]] 
[/server:servername] [/recursive] itemspec [/noprompt]

对于一个文件

tf undo /workspace:workspacename;workspaceowner $/projectname/filename.cs

图形用户界面(GUI)

第二种方法是通过GUI实现,但这不是标准功能 - 您需要安装TFS Power Tools。有关如何使用此方法,请参见此处

请记住,使用任一种方法都需要适当的权限。权限称为“撤销其他用户的更改”和“解锁其他用户的更改”。您可以通过以下方式查看这些权限:

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

删除工作区

tf workspace /delete WorkspaceName;User
             /server:http://server:8080/tfs/MyTeamCollection 

对我来说,命令tf undo /workspace:mydesk *.sdf报告“没有待处理的更改”,但不会撤消检出(锁定)。 - dumbledad
我忘记了我的*.sdf itemspec之前的TFS服务器路径,我以为它会从当前目录中解决。您给出的命令行现在对我起作用了。 - dumbledad
1
请确保在路径中使用带引号的空格,否则您可能会收到类似于“未找到$ / xxx的待处理更改”的消息。 - PeterX
我怎么找到工作区名称?我看到可以运行:tf workspaces /owner:[other user] /server:[server],我会得到用户拥有的四个工作区列表,但是如何知道这个文件所属的是哪个工作区? - PeterX
1
PeterX,您可以通过在Visual Studio的“解决方案资源管理器”中导航到文件,右键单击锁定的文件并选择“属性”,然后在“状态”选项卡中查看有关工作区和锁定文件的用户信息。 - Dante
tf undo命令用于撤销单个文件中的更改,但缺少/server参数。正如其他人所说,请注意文件路径中的空格。 - Dante

36

我发现最简单的方法是使用免费的TFS Sidekick 应用程序。它有一个选项可以查看和撤销其他用户的检出。


5
它在“状态副手”下方。搜索、选择文件、撤销。 - Wolf5
1
如果用户已经离开公司,那么您必须知道Active Directory用户名(这通常不同于用户的名字和/或姓氏)。我的公司分配了编号的用户名,因此在我可以在VS或状态TFS Sidekick中搜索该用户之前,我必须查找退休的用户。 - Zephan Schroeder
1
很遗憾,此应用程序已不再可用;答案中提供的原始网站已经关闭。 - TylerH

31

我自己也遇到过这个问题,发现了一种更简单的方法来清理旧的工作区。

  1. 在Visual Studio中,打开源代码管理资源管理器(Source Control Explorer)

  2. “工作区”下拉菜单中选择'工作区...'

  3. 一个对话框将出现,显示当前PC上的工作区。选择'显示远程工作区'。

  4. 您现在还会看到来自以前PC的工作区(只要它们来自同一用户帐户)。选择旧的工作区并单击'删除'。这应该删除TFS上的旧工作区以及所有持久的签出。

我相信Arne已经找到了解决方案,但我希望这可以帮助那些通过搜索引擎来寻找解决方案的人。


9
如果您是工作区的所有者,这个方法非常有效,尤其是在清理当前工作区列表时。但如果要删除其他用户的工作区或检出锁定,则不太好用 :-)。 - Zephan Schroeder
同意。这对于从另一台计算机上删除您自己的检出锁非常有效。 - Chris
2
没错,但问题是针对已经被不同用户签出的文件进行解锁。 - BrainSlugs83

8
在TFS Sidekick中选择您的文件,然后在列表上方,您会看到一个“撤销待处理更改”的选项。点击它,更改就会被撤销 :) 该图标类似于MS Word中的“撤销”图标。 从http://www.attrice.info/cm/tfs/index.htm获取TFS Sidekicks。

最简单易用的工具。真的帮助我撤销了前员工在解决方案级别上检出的更改。 - Vishnoo Rath

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接