【问题标题】:Azure Devops / TFS Workspace recovery/deletion after accidental hijack of ownership意外劫持所有权后 Azure Devops / TFS 工作区恢复/删除
【发布时间】:2022-01-12 17:21:38
【问题描述】:

我的 Azure Devops TFS 存储库有 2 个帐户。我只真正使用其中之一。昨天我不小心用我的另一个帐户登录了,现在它以某种方式接管了我的工作空间。我所有未决的更改都消失了,我的源代码控制绑定。我已经备份了我的源并且可以执行 winmerge diff 来查找我的更改,但我无法删除或更改工作区的所有权,因为它在删除后会不断返回。我修复了我的 VS 2020 安装,并且其他帐户已注销,但每次我创建新工作区时,所有者都是其他帐户。请帮忙。

更新:所以我尝试修复 VS 安装,希望它能重置所有内容,但没有成功。我完全卸载了 Visual Studio,也没有工作。这些工作空间不会消失。现在,当我启动 Visual Studio 时,大约有 50% 的时间会挂起和崩溃。如果我无法解决,我知道重新安装我的 Windows 会修复它,但这有点戏剧性。希望有人知道如何“重置”而不是卸载。

【问题讨论】:

  • 我移动,然后删除了 AzureDevops 中 git 解决方案的 TFS 存储库。如果这些是您的 个人 存储库,那么从长远来看,类似的方法可能会节省时间。 git 还以更本地化的方式处理个人凭据,因此这不可能通过 git 克隆发生。
  • 工作区不是 Visual Studio 概念,尽管您可以通过 Visual Studio 管理它们。您可以通过tf CLI 管理您的工作区(有关更多文档,请参阅互联网),这将为您提供更好的工具来解决、诊断和修复问题。

标签: azure-devops tfs tfvc source-control-explorer


【解决方案1】:

我不会接受这个答案,但我认为它值得发布,因为这是我在已知时间范围内解决问题的唯一可靠方法。我相信有更好的方法,但如果有人发现自己绝望了,这是一条出路。

我重新安装了 Windows 11,并选择删除我的所有文件。当我重新安装 Visual Studio 2022 时,我很震惊地再次看到工作区。显然它是从服务器获取的,所以我使用了一些 tf CLI 命令(感谢@DanielMann)

tf vc workspaces [workspace] /computer:* /format:xml collection:https://[collectionurl]
tf workspace /delete [workspace];[userid]

删除这些,这一次他们再也没有回来。我之前使用过 tf 命令,但工作空间不断返回。

不是一个理想的解决方案,但我的开发笔记本电脑很轻,一切正常。重新安装大约需要 20 分钟,与我昨天输掉的一整天相比,再加上 30 分钟来重新安装软件。

另外值得一提的是,我之前使用 tf 命令来获取以 xml 输出的所有工作区,因此我可以指定工作区和用户 ID。尝试了很多其他方法来删除工作区,但没有任何效果。

重新安装 Windows 并从服务器中删除工作区可确保工作区不再出现。

同样一文不值,此时我不再关心工作区,但无论发生什么都导致我的 Visual Studio 2022 即使在重新安装后也无法正常运行。它会一直挂起和崩溃,现在可以修复它(正如您在重新安装操作系统时所期望的那样)。

【讨论】:

    【解决方案2】:

    我的猜测是

    tf vc workspace /newowner:rightuser workspacename;thewronguser /collection:https://server/collection
    

    或者

    tf vc workspaces /updateUserName:rightusername workspacename;thewrongusername /collection:https://server/collection
    

    会成功的。

    服务器会跟踪工作区的所有权。每次在本地创建工作区时,它都会在服务器上注册。最初,它可以跟踪哪些文件正在签出和/或锁定(服务器工作区),并且对于本地工作区,基本上只有哪些文件夹映射到您的计算机上,以防止在同一台计算机上创建重叠的工作区。

    当您使用错误的用户帐户登录时,我还没有听说过自动恶意接管工作区,但要恢复更改,您应该告诉服务器谁是工作区的合法所有者。使用正确的用户名重新登录。

    Windows 重新安装有效的事实可能是因为它会删除用户配置文件中的本地工作区缓存。删除服务器上的工作区(使用命令行)将释放您计算机上的路径,以便您可以再次映射这些文件夹。如果您输入了不同的机器名称,那也可以解决问题。

    另见:

    【讨论】:

    • 谢谢,但很遗憾,我现在无法尝试它已解决。我能说的是,我尝试了那些减去“vc”的命令,但它没有用,它一直在回来。在 Visual Studio 中,当我运行命令时,工作区的所有权会发生变化,但当我重新启动 Visual Studio 或连接到源代码控制时,它们会变回来。所有新的工作空间也将是错误的所有者。此外,视觉工作室变得可用不稳定。转到源代码管理资源管理器会导致 50% 的时间崩溃。
    • 我能说什么。 TFVC 已经死了。
    猜你喜欢
    • 2020-01-05
    • 1970-01-01
    • 2014-09-17
    • 2018-10-03
    • 1970-01-01
    • 2021-03-13
    • 1970-01-01
    • 1970-01-01
    • 2020-07-10
    相关资源
    最近更新 更多