ChatGPT解决这个技术问题 Extra ChatGPT

如何在 TFS 中撤消其他用户的结帐?

tfs

作为常驻 TFS 管理员,有时我被要求撤消用户对某个文件签入源代码控制的签出(通常是锁定)。

如何撤消其他用户的结帐?


C
Community

至少有两种不同的方法可以做到这一点:

命令行

Team Explorer 附带了一个名为 Tf.exe 的命令行实用程序。查找文档 here。可以通过启动 Visual Studio 命令提示符窗口来访问它。该命令的语法是:

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

对于一个文件

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

图形用户界面

第二个是通过 GUI,但不是标准的 - 您必须安装 TFS Power Tools。有关如何使用此方法的信息,请参阅 here for details

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

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

删除工作区

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

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

我发现最简单的方法是使用免费的 TFS Sidekick application。它具有查看和撤消其他用户结帐的选项。


它位于“状态助手”下方。搜索、选择文件、撤消。
如果用户离开了公司,那么您必须知道 Active Directory 用户名(它并不总是与用户的名字和/或姓氏相同)。我的公司分配了编号的用户名,因此我必须先查找退休用户,然后才能在 VS 或 Status TFS Sidekick 中搜索他。
这非常有效。比尝试使用命令行工具找出工作区名称等容易得多。
s
saeid mohammad hashem

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

在 Visual Studio 中,打开源代码管理资源管理器。从“工作区”下拉菜单中选择“工作区...”,将出现一个对话框,显示当前 PC 上的工作区。选择“显示远程工作区”您现在还将看到以前 PC 的工作区(只要它们来自同一用户帐户)。选择旧工作区,然后单击“删除”。这应该从 TFS 中删除旧工作区以及任何持久的签出。

我确信 Arne 已经找到了解决方案,但我希望这可以帮助其他在谷歌上搜索该问题的人。


如果您是工作区所有者,这很有效,尤其是在清理您当前的工作区列表时。不适合删除其他用户的工作区或结帐锁:-)。
同意。这适用于从另一台 PC 删除您自己的结帐锁。
是的,但问题是特定于解锁已签出给不同用户的文件。
M
Maryam

在 TFS sidekick 中选择您的文件,然后在列表上方,您有一个“撤消挂起的更改”。单击它,更改将被撤消 :) 该图标类似于 MS word 中的“撤消”图标 Get TFS sidekicks from http://www.attrice.info/cm/tfs/index.htm


使用最简单的工具。确实帮助我撤消了前员工检查过的解决方案级别的更改