我在团队项目中的tfs中有一个项目,然后我们将项目移动到另一个团队项目中的不同位置.
我已经将Jenkins配置为连接到团队项目并构建我的解决方案但是当我更改设置以连接到新的tfs团队项目时,它给出了以下错误:
[workspace] $ "C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\tf.exe" workspace -new Hudson-ProjectName1-Build-MASTER;domain1\username1 -noprompt -server:http://domain-eg.net:8080/tfs/newteamproject ********
The path D:\jenkins\jobs\ProjectName1-Build\workspace is already mapped in workspace Hudson-ProjectName1-Build-MASTER [http://domain-eg.net:8080/tfs/oldteamproject].
Run Code Online (Sandbox Code Playgroud)
所以上面显示有一个现有的工作区,所以我运行下面的命令来删除它
tf workspace -delete Hudson-ProjectName1-Build-MASTER;domain1\username1 -noprompt -server:http://domain-eg.net:8080/tfs/oldteamproject
Run Code Online (Sandbox Code Playgroud)
并且它提示工作区已被删除但我仍然得到相同的错误.
我还通过运行以下命令检查映射是否已被删除:
tf workspace -server:http://domain-eg.net:8080/tfs/oldteamproject Hudson-ProjectName1-Build-MASTER
Run Code Online (Sandbox Code Playgroud)
但它表示工作区不按预期存在.
所以,我认为它可能在某处缓存并运行以下命令:
tf workspaces /remove:* /collection:http://domain-eg.net:8080/tfs/oldteamproject
Run Code Online (Sandbox Code Playgroud)
它说"缓存中没有工作区匹配*来自服务器http://domain-eg.net:8080/tfs/oldteamproject "
所以我猜它甚至都没有缓存.
是什么导致错误以及如何解决?
Bog*_*SFT 188
来自VS:
从VS在另一台机器上
您不需要VS与登记在同一台机器上,因为您可以编辑远程登记!在按下"工作区..."项目时出现的对话框中有一个复选框,显示"显示远程工作区" - 只需勾选,您将获得所有登记的列表:
从命令行
从开发人员命令提示符调用"tf workspace".它将直接打开"管理工作区"!
bra*_*c10 121
我遇到了同样的问题,并且能够通过手动删除位于此处的TFS缓存中的所有文件来修复它:
%LocalAppData%\Microsoft\Team Foundation\3.0\Cache
Run Code Online (Sandbox Code Playgroud)
或者4.0
,5.0
等等.
小智 21
请按照以下步骤从TFS中删除映射:
team explorer
Source Control
project
Remove Mapping
smt*_*r19 11
错误是真的.您可能在不同的计算机上创建了具有相同名称的工作区 现在您可能已经更换了具有不同机器名称的机器.
所以这里的解决方案肯定会有效.以下是解决方法.
请按照以下步骤操作:
Ctrl + Run
Run Code Online (Sandbox Code Playgroud)
复制和过去
%LocalAppData%\Microsoft\Team Foundation
Run Code Online (Sandbox Code Playgroud)
点击每个文件夹即可获得
现在删除这些文件夹中的所有数据.
重新打开Visual studio.
谢谢.
这里的所有答案似乎都是部分答案,并不适用于所有情况。我认为这个答案在所有情况下都适用,假设您有适当的权限。
tf workspaces
请注意,结果可能会列出几个具有相同结构的表。如果您只看到一张表,那么其他答案中的一些假设可能对您有用。但是,如果您看到两个或更多表,那么该Collection字符串就很重要!对于我们的示例,我们假设您有两个集合(两个与四个没有什么不同,只是其中一个比另一个更乏味):
https://dev.azure.com/foo
和https://bar.visualstudio.com/
运气好的话,你会知道你想与这两者中的哪一个合作。但是,如果您需要循环遍历所有这些集合,那么您只需一次进行一个集合即可。这里的每个“集合”与 Azure DevOps 中的“组织”相同(我认为)。
如果您不使用此集合详细信息,那么您可能会看到一条错误消息:
无法确定源控制服务器。
tf workspaces /computer:* /owner:* /collection:https://dev.azure.com/foo
这将使您更全面地了解您正在处理的事情。如果您有多个 MSA 和 Org 帐户从同一台计算机访问此存储库,这会变得尤其令人讨厌。事实上,您可能有多个看似相同的条目。如果你尝试根据你目前所知道的情况删除它们,可能会不起作用。但我们可以获得更多信息。
/format:xml
到它的末尾:tf workspaces /computer:* /owner:* /collection:https://dev.azure.com/foo /format:xml
现在,这为您提供了一堆带有一些附加属性的 XML。我们可能最关心的是所有者别名。这是您现在需要检查并删除这些工作区的缺失信息。如果没有这些附加信息,很容易碰壁并被错误消息卡住:
指定一个工作区。
OwernAliases
条目,选择您想要删除的唯一条目(如果有多个条目,则重复)并使用以下命令(列出了几个示例):tf workspace /delete /collection:https://dev.azure.com/foo "MyWorkspaceName;Windows Live ID\John.Doe@hotmail.com"
tf workspace /delete /collection:https://dev.azure.com/foo "MyWorkspaceName;John Doe"
tf workspace /delete /collection https://dev.azure.com/foo "MyWorkspaceName;2C3E8474-A39C-4785-8794-DC72F09981E6\John.Doe@Example.com"
GUID 标识 AAD 目录,引号用于处理别名中可能存在的任何空格。“MyWorkspaceName”来自您之前列出的工作区的查询。
如果没有这种非常彻底的方法,这个问题中的所有其他答案可能都会失败。虽然其中一些工作将清除本地工作区,但它们不会清除服务器工作区,您仍然可能与之发生冲突。此外,如果您之前使用过其他帐户,事情可能会变得很棘手,例如您从 MSA 帐户切换到 AAD 帐户。如果您拥有一个 MSA 帐户和多个 AAD 帐户,并且所有帐户都具有您在同一工作站上使用的相同电子邮件地址,那么事情就会变得非常棘手。如果其中多个都使用工作区的默认名称:计算机的主机名,那么事情就会变得超级疯狂。就我而言,我有四个工作区,全部具有相同的工作区名称、所有者名称和计算机名称(即,没有 XML 格式的第一个查询有 4 个相同的记录!)。
我不知道是否有比这更图形化的方式来管理这些。我已经看过了,但还没有找到比这更好的方法。
归档时间: |
|
查看次数: |
216189 次 |
最近记录: |