【问题标题】:Azure Devops - Deleting WorkspaceAzure Devops - 删除工作区
【发布时间】:2020-01-05 14:02:57
【问题描述】:

使用 VS 2019 的开发者命令提示符

我可以看到我所有工作区的列表。

tf workspaces /collection:"https://dev.azure.com/[ORGANIZATION]" /owner:*

然后我可以使用以下方法删除我的本地工作区:

tf workspace /delete [WORKSPACE];"[OWNER]"

如果我启动 Visual Studio 然后重新运行第一个命令工作区返回

如果我从 VS UI 中删除工作区,也会发生同样的事情。只要我单击map & get 创建一个刚刚删除的同名新工作区,它就会重新出现。


注意事项

在重新启动 Visual Studio 之前,我也尝试过:

  1. 在此处清除缓存文件夹: C:\Users\[NAME]\AppData\Local\Microsoft\Team Foundation\8.0\Cache
  2. 在这里删除我所有的本地工作区文件:C:\Users\[NAME]\source\Workspaces

编辑

经过一些测试,我认为该问题可能与同名的旧工作区有关。我无法删除旧工作区,因为当我尝试删除旧的非本地数据库时,我收到:

错误:

工作区 [WORKSPACE];[OWNER] 不存在。

我现在相信旧工作区是我从旧 TFS 迁移到 Azure 时的痕迹。


问题

  1. 如何删除所有个工作区?
  2. 能否从 Azure Dev Ops 门户中删除工作区?
  3. 如何删除非本地工作区?

【问题讨论】:

  • 如果你不启动VS并重新运行第一个命令删除的工作区是否存在?在 VS UI 中能否成功彻底删除工作区?
  • 根据您的命令行,您是否尝试删除 Azure DevOps Service 而不是 TFS 工作区?
  • @ShaykiAbramczyk 是的,工作区显示为已删除,直到我再次启动 VS。
  • @PatrickLu-MSFT 我相信我使用的命令会删除工作区。 delete 命令在运行后会从列表中删除工作区。
  • @DreamTeK 过去它在 VS2019 中运行良好?你有最新版本的VS2019吗?

标签: visual-studio tfs azure-devops


【解决方案1】:

要删除现有工作区,您必须是所有者或将全局管理工作区权限设置为允许。

您也可以尝试使用 onwer uniq ID 代替名称

tf vc workspaces ws_3_3 /computer:* /format:xml /collection:https://dev.azure.com/patricklu/

ws_3_3 是您要删除的工作区名称,收藏只需输入您的收藏网址 在提示窗口中输入您的地址以连接到 url(如果有)。

之后它会返回一些信息,如下所示:

带有所有者唯一 ID

的信息

然后你只需要使用 tf workspace /delete 命令,在我的示例中它正在使用:

tf workspace /delete ws_3_3;fb46f066-9122-4342-94c4-93b7526a3545

只需键入 yes,它将删除工作区。 “无法确定源代码管理服务器” 这可能是由于您在尝试删除非本地工作区时未包含集合 url。

1.如何删除所有工作区?

没有删除公司所有工作空间的命令,你必须一个一个地去做。

2.可以从 Azure Dev Ops 门户中删除工作区吗?

不,你不能这样做。您应该使用命令行或通过 Visual Studio UI 如下:

希望这可以帮助。

【讨论】:

  • 谢谢帕特里克。这确实提供了一些见解。我用唯一的 id 删除了它,它又被删除了,但是重新启动 VS 会恢复它。我也尝试使用 vs 中的 ui 删除工作区,但只要我单击 map & get 创建新工作区,旧工作区就会立即恢复。
  • 在删除命令中包含集合后,我得到了错误。 the collection does not exist你能提供进一步的见解吗?
  • @DreamTeK 您使用的是什么详细命令?您是否能够通过tf workspaces /computer:* /owner:* /format:xml 看到这个特定的工作区如果是这样尝试在没有集合 url 的情况下将其删除,只需使用上面建议的 GUID 和格式tf workspace /delete ws_3_3;fb46f066-9122-4342-94c4-93b7526a3545 此外,您可以查看这个类似的链接developercommunity.visualstudio.com/content/problem/267507/…
  • 我正在寻找伙伴,但无法让它与 2019 年一起使用。我会尝试看看我是否可以让修复工作。干杯。
  • 再次感谢您的跟进和重要提示。我实际上没有针对我的确切问题的解决方案,但是您确实回答了最初的问题,因此我将其标记为已解决。工作区的所有者不再是组织的一部分,这可能是根本原因,但我认为管理员仍然有适当的权限来删除它们。
【解决方案2】:

我最近在删除工作区时遇到了一些问题,因为拥有该工作区的用户已经离开,因此验证无法重新识别他们的帐户。

This post 向我介绍了tf workspaces 命令的 XML 输出;使我能够获取用户的基础 id 并使用它删除工作区。

这是我用来删除用户所有工作区的 PowerShell 包装器:

Set-Alias -Name 'tf' -Value 'C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\TF.exe' # amend path so it points to your tf.exe file

# fetch a list of all workspaces and store them in an xml variable
$x = [xml](tf workspaces /computer:* /owner:* /format:xml)

# determine who we want to delete (this is used in our filter later; to delete all, just skip the filter
$userToDelete = 'Someone@example.com'

# for each workspace 
# take those where the owner's display name matches our target user
# then delete that workspace (I've left prompts enabled, so you can manually validate things; add /noprompt to avoid that
$x.Workspaces.Workspace | ?{$_.ownerdisp -eq $userToDelete} | %{tf vc workspace /delete "$($_.name);$($_.owner)"}

MS Docs 中有关可用选项的更多信息;所以你可以根据你的具体要求调整上述内容。

【讨论】:

    猜你喜欢
    • 2022-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-19
    • 2020-06-28
    • 1970-01-01
    • 2020-06-05
    • 1970-01-01
    相关资源
    最近更新 更多