【问题标题】:how to remove TFS workspace mapping for another user如何删除另一个用户的 TFS 工作区映射
【发布时间】:2015-04-02 15:22:20
【问题描述】:

我正在使用 Visual Studio 2010。几个月前,我使用一些“ABC”TFS 用户连接到 TFS 并在我的本地驱动器上映射了一些文件夹。现在我以前的用户 'ABC' 不见了,我被分配了一个新的 tfs 用户 'XYZ' 来连接到 TFS。所以很自然地我尝试将一些远程文件夹映射到我现有的本地文件夹,我得到了以下错误。

“工作文件夹 'Some_Local_Path' 已被计算机 'MACHINE_NAME' 上的工作区 WORKSPACE_NAME:USER_NAME 使用”

我已尝试删除缓存文件夹内容,但出现相同的错误 (C:\Users{UserName}\AppData\Local\Microsoft\Team Foundation\3.0\Cache)。 我还尝试运行常见的 TFS 命令 (tf workspaces /remove:*) 来删除所有工作区的缓存,但仍然出现相同的错误。 当我尝试编辑我的工作区时,它显示了我当前用户“XYZ”的源代码管理和本地文件夹,但我想要的是删除我以前的用户“ABC”的文件夹绑定。我怎样才能做到这一点?

【问题讨论】:

    标签: tfs


    【解决方案1】:

    如果您无权访问该帐户,则需要让您的 TFS 管理员删除工作区。

    您可以通过指定显式用户调用“tf 工作区”来执行此操作,但您需要“管理其他用户工作区”权限。 TF Sidekicks 使用相同的命令,因此需要相同的权限。它是一个 TFS 管理员生产力工具。

    https://msdn.microsoft.com/en-us/library/y901w7se(v=vs.100).aspx

    你可以使用:

    tf workspace /delete "WORKSPACENAME;PREVIOUSUSERACCOUNT"
    

    【讨论】:

    • 我可以保证,TF Sidekicks 绝对能够通过简单的“工作区”;“所有者”删除所有已发布的命令行。我注意到所有者在 Sidekicks UI 中显示为 guid 字符串......也许这就是秘密 - 因为,当我尝试通过命令行删除时,我得到“不存在”。
    • 在 azure devops 中,删除所需的权限是“管理工作区”
    【解决方案2】:

    如果您对集合拥有管理权限,则可以使用位于 Visual Studio\Common7\IDE 目录中的 TF 命令来执行此操作,而无需安装其他工具。

    首先列出与用户关联的工作空间:

    TF workspaces /collection:"http://tfsserver:8080/tfs/collection_name" /owner:owner_id

    这将返回用户拥有的工作区列表以及与之关联的计算机

    删除命名工作区:

    TF workspace /delete workspacename;owner_id /collection:"http://tfsserver:8080/tfs/collection_name"

    【讨论】:

    • 我不能随便删除其他用户的工作区,因为他们留下了一个已签出的文件。 -- 不幸的是,它是一个本地的私有工作区,不知何故,文件仍然被他们锁定...... -- 不过必须有一个命令来解锁它......
    • 当你删除一个工作区时,不要指定 /collection - 它只有在没有它的情况下才能工作。
    • 为我工作。谢谢!
    【解决方案3】:

    我遇到了类似的问题,无法安装 Sidekick,因为我运行的是 VS 2k17。

    我无法删除工作区,因为它一直告诉我找不到工作区。

     tf workspaces /computer:* /owner:* 
    

    这将列出我的所有工作区和所有者。所以我会尝试

     tf workspace /delete myWorkSpaceName;Bob Smith
    
    
     TF14061:  The workspace myWorkSpaceName;Bob Smith does not exist.
    

    这是我在上面的原始工作区列表中获得的确切工作区和所有者名称。

    解决方案是要求xml格式

    tf workspaces /computer:* /owner:* /format:xml > c:\temp\workspaces.xml
    

    (注意:输出到文件是可选的,但建议使用)

    这为工作区所有者提供了别名,其中一个是带有 guid 和帐户电子邮件的长名称。这终于奏效了:

    tf workspace /delete myWorkSpaceName;aabe3ec12-1254-4956-b1ee-3fb26506931e\bsmith@myDomain.onmicrosoft.com
    

    它要求确认并最终删除了我的孤立工作区。

    【讨论】:

    • 这个答案更好,因为它不依赖 3rd 方软件并提供更多洞察力。谢谢拉里G
    • 太棒了!这帮助我的团队畅通无阻!
    • 您指定要删除的命令对我不起作用,但它起作用了:tf workspace /delete /collection:servername:8080/tfs/defaultcollectionworkspacename;domain\username
    • 你得到 - myWorkSpaceName;Bob Smith 工作区不存在 - 因为你的名字包含空格并且必须用引号覆盖。试试这个: tf workspace /delete "myWorkSpaceName;Bob Smith"
    • 我尝试了带引号和不带引号,但无论哪种方式都不起作用。直到我引用了 GUID,我才被允许删除它。
    【解决方案4】:

    首先你需要安装TFS Sidekick(你可以从http://www.attrice.info/cm/tfs/下载它)在安装阶段选择集成IDE模式

    然后将在Visual Studio 中添加一个新菜单,如下所示

    菜单 -> 工具 -> TeamFoundation Sidekick

    然后打开工作区sidekick 搜索 'ABC' 用户,然后你可以删除他的工作空间

    【讨论】:

    • 很棒的实用程序,它在没有其他办法的情况下解决了这个问题。感谢您的回答。
    • @abhijat_saxena 它适用于拥有权限的人,包括管理员
    • 谢谢!很棒的独立应用程序,连接并与 Azure DevOps Server 一起使用。我简直不敢相信有多少死掉的 WorkSpaces 是因为买了新机器等等……
    【解决方案5】:
    1. 打开Source Control Explorer(View->Other Windows->Source Control Explorer)
    2. 在工具栏窗格上会有Workspace 组合。从该组合中选择Workspacess..
    3. Edit
    4. Remove

    【讨论】:

    • 要使用此解决方案,OP 需要由无法访问的“ABC”用户登录
    【解决方案6】:

    1.首先我们将在 VS 2015 Developer 命令提示符下检查工作区列表,

    Ex - tf 工作区 /owner:*

    2.现在我们将从 VS 2017 Developer 命令提示符中获取 xml 格式,该格式将具有特定工作区的“所有者 ID”,

    示例 1 - tf.exe 工作区 /owner:* /computer:ComputerName /collection:https://YOUR-TFS-URL.visualstudio.com /format:xml

    3.我们现在可以删除特定用户的工作区,

    示例 1- Tf 工作区 /delete ComputerName;email@email.com /server:"https://URL.visualstudio.com"

    示例 2 - Tf 工作区 /delete ComputerName;1e178c77-bb8b-6f05-bf99 /服务器:https://URL.visualstudio.com

    (其中 1e178c77-bb8b-6f05-bf99 是您从步骤 2 XML 格式获得的工作区 ID)

    4.我们将再次从 VS 2015 Developer 命令提示符检查工作区列表,

    Ex - tf 工作区 /owner:*

    【讨论】:

      【解决方案7】:

      从 TFS 服务器删除工作区的步骤:

      1. 打开 Visual Studio 开发人员命令提示符。

      2. 转到 Program Files (x86) 文件夹,根据安装的 Visual Studio 选择“Microsoft Visual Studio 12.0”文件夹。在这里,我选择了它,因为我的机器上安装了 Visual Studio 2013。在命令提示符中添加此路径。添加喜欢 "cd C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE"

        注意:如果您可以从网络访问 TFS 服务器,那么您可以在任何安装了 Visual Studio 的机器上尝试它,或者从同一 TFS 机器服务器(如果那里有 Visual Studio)尝试。强>

      3. 查看特定集合下的工作区列表。键入以下命令以获取一个集合下的工作区。

        cd C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\tf 工作区 /server:http://{TFSServername}:8080/tfs/{CollectionName} /owner:*

        • 在上述命令中,将 {TFSServername} 替换为您的 TFS 服务器名或服务器 IP。
        • 在上述命令中,将 {CollectionName} 替换为实际的 TFS 集合名称。
      4. 如何删除特定集合下的工作区。检查以下命令是否相同。

        • tf 工作区 /server:http://{TFSServername}:8080/tfs//{CollectionName} /delete “{workspacename};{owner}”
        • 将 {workspacename} 替换为工作区列表中的“Workspacename”。
        • 将 {CollectionName} 替换为 TFS 集合名称。

          例如tf workspace /server:http://{TFSServername}:8080/tfs//{CollectionName} /delete {Enter Exact Workspacename};{Enter ExtactOwnerName}

      【讨论】:

        【解决方案8】:

        我遇到了同样的问题,在使用 tf delete 命令删除工作区后,我收到了工作区已经映射的错误!然后我发现 tf delete workspace 命令使作业不完整,您还必须按照此处的建议手动将其从缓存中删除:

        https://community.dynamics.com/365/financeandoperations/b/dynamicsaxinsightbyanas/posts/d365fo-the-path-is-already-mapped-in-workspace

        【讨论】:

        • (1) OP 已经尝试删除缓存文件夹内容。文章中还有什么可以提供帮助的吗? (2) 直接从引用的链接中复制(摘录)相关信息(因为链接经常会随着时间的推移而中断)。 (3) 请澄清“……下班不完整的烧烤……”。也许您的意思是“......可能会让工作不完整 - 在这种情况下......”谢谢!
        【解决方案9】:

        在设置 Jenkins 的人离开我们公司后,我最终遇到了同样的问题。他设置了工作区,并且 TFS 结帐正在使用备用身份验证。由于他的凭据从 msdn 中删除,TFS 结帐开始阻塞。

        遵循 LarryG 的解决方案有助于删除工作区。唯一不同的是,我只是使用了离开公司的人的 windows live ID。

        tf 工作区 /delete myWorkSpaceName;windowsliveID

        【讨论】:

          猜你喜欢
          • 2013-03-24
          • 1970-01-01
          • 2011-06-05
          • 2020-06-27
          • 2012-11-05
          • 1970-01-01
          • 2016-01-29
          • 1970-01-01
          • 2018-11-21
          相关资源
          最近更新 更多