Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jenkins 如何删除TFS工作区映射?_Jenkins_Tfs - Fatal编程技术网

Jenkins 如何删除TFS工作区映射?

Jenkins 如何删除TFS工作区映射?,jenkins,tfs,Jenkins,Tfs,我在一个团队项目中的tfs中有一个项目,然后我们将该项目移动到另一个团队项目中的其他位置 我已将Jenkins配置为连接到团队项目并构建我的解决方案,但当我更改设置以连接到新的tfs团队项目时,出现以下错误: [workspace] $ "C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\tf.exe" workspace -new Hudson-ProjectName1-Build-MASTER;domain1\us

我在一个团队项目中的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].
上面显示存在一个现有的工作区,所以我运行下面的命令来删除它

tf workspace -delete Hudson-ProjectName1-Build-MASTER;domain1\username1 -noprompt -server:http://domain-eg.net:8080/tfs/oldteamproject
它提示工作区已被删除,但我仍然收到相同的错误

我还通过运行以下命令检查映射是否已被删除:

tf workspace -server:http://domain-eg.net:8080/tfs/oldteamproject Hudson-ProjectName1-Build-MASTER
tf workspaces /remove:* /collection:http://domain-eg.net:8080/tfs/oldteamproject
但是它说工作区并不像预期的那样存在

因此,我认为它可能正在某个地方缓存它,并运行以下命令:

tf workspace -server:http://domain-eg.net:8080/tfs/oldteamproject Hudson-ProjectName1-Build-MASTER
tf workspaces /remove:* /collection:http://domain-eg.net:8080/tfs/oldteamproject
它说“缓存中没有与服务器中的*相匹配的工作区”

所以我猜它甚至没有被缓存


那么是什么导致了错误以及如何解决它呢?

按照以下步骤从TFS中删除映射:

  • 打开团队资源管理器
  • 单击源代码管理
  • 右键单击您的
    项目
  • 单击
    删除映射

  • 来自VS:

  • 打开团队资源管理器
  • 单击源代码管理资源管理器
  • 在工具窗口的导航栏中,有一个标签为“工作空间”的下拉列表
  • 扩展它并单击“工作空间…”选项(是的,有点不直观)
  • 此时会出现“管理工作区”窗口。单击编辑,您可以添加/删除/编辑工作区
  • 来自不同机器上的VS

    您不需要VS与登记在同一台机器上,因为您可以编辑远程登记!在按下“工作空间…”项时出现的对话框中,有一个复选框,说明“显示远程工作空间”-只需勾选该复选框,您将获得所有登记的列表:

    从命令行执行


    从开发人员命令提示符调用“tf工作区”。它将直接显示“管理工作区”

    我遇到了同样的问题,并且能够通过手动删除TFS缓存中的所有文件来修复它,位于此处:

    %LocalAppData%\Microsoft\Team Foundation\3.0\Cache
    

    或者
    4.0
    5.0
    ,等等。

    我使用/newowner命令删除了映射,如下所示:


    该命令打开了一个编辑工作区窗口,我在其中删除了映射。之后,我删除了我不需要的工作区。

    错误是真实的。您可能在不同的计算机上创建了同名的工作区。现在,您可能已经更改了具有不同计算机名称的计算机

    这是一个肯定会奏效的变通方法。以下是变通方法

  • 转到“团队资源管理器”
  • 转到“源代码管理”
  • 转到工作区下拉列表
  • 点击“工作空间…”
  • 将出现一个弹出窗口
  • 单击“显示远程工作区”
  • 现在删除冲突的工作区,您可以继续您的工作

  • 更新2019-01-23

    如果重复出现以下错误
    工作区wkspace eg不存在…
    即使在
    tf workspace
    命令中使用了正确的用户名(
    wkspcOwnerDomain\wkspcOwnerUsername
    ),例如

    tf workspace“wkspaceEg;wkspcOwnerDomain\wkspcOwnerUsername”/collection:http://tfs.example.com:8080/tfs/collectionEg /登录名:TFSUsername,TFSPassword

    然后使用
    tf workfold
    命令可以帮助修复它。看

    如果即使这样也不起作用,并且您无法/不愿意使用,请继续下面的“最后一搏”选项


    我正在使用TFS 2012。我尝试了所有在线建议:删除缓存文件夹、使用工作区下拉列表、tf Workspace/remove:*、从控制面板清除凭据,IE等等

    什么都没用,我相信我的工作区不知怎么被破坏了。最后,我转到TFS数据库并运行以下查询。成功了!当然,在处理数据库、备份等时要非常小心

    该数据库被称为
    Tfs\uu
    。忽略
    Tfs\u配置
    MSSQL数据库。我不确定,但如果您没有
    Tfs\u
    数据库,则设置可能位于
    Tfs\u DefaultCollection
    数据库中。映射存储在
    tbl\u工作文件夹中。LocalItem

    /*Find correct workspace*/
    SELECT WorkspaceId, *
    FROM tbl_Workspace
    ORDER BY WorkspaceName
    
    /*View the existing mapping*/
    SELECT LocalItem, *
    FROM tbl_WorkingFolder
    WHERE WorkspaceId = <<WorkspaceId from above>>
    
    /*Update mapping*/
    UPDATE tbl_WorkingFolder
    SET LocalItem = 'D:\Legacy.00\TFS\Source\Workspaces\teamProjEg' WHERE
    /*LocalItem = NULL might work too but I haven't tried it*/
    WorkspaceId = <<WorkspaceId from above>>
    
    /*找到正确的工作区*/
    选择工作空间ID*
    从tbl_工作区
    按工作空间名称排序
    /*查看现有映射*/
    选择LocaleItem*
    从tbl_工作文件夹
    其中WorkspaceId=
    /*更新映射*/
    更新tbl_工作文件夹
    SET LocalItem='D:\Legacy.00\TFS\Source\workspace\teamProjEg'其中
    /*LocalItem=NULL可能也可以,但我还没有尝试过*/
    工作空间ID=
    
    这里的答案都没有删除我的工作区。但这里有一个可能对你有用的解决方案

  • 打开Visual Studio命令提示符
  • 请先关闭Visual Studio,否则delete命令可能无法删除工作区
  • 列出工作区命令->tf/?从TFS版本中查找可用的命令
  • 列出工作空间->tf工作空间
  • 删除工作区->tf工作区您的工作区/删除

  • 您不必删除整个缓存文件夹。您将丢失所有设置/首选项 工作区映射存储在名为:

    用户本地设置/应用程序数据目录下的VersionControl.config。 位于windows 7中的此处:

    %LocalAppData%\Microsoft\Team Foundation\x.0\Cache\Volatile

    其中x=3.0,4.0,5.0,6.0等

    在该文件夹中,您将找到guid命名的文件夹,打开每个文件夹,手动编辑前面提到的文件,以删除该本地文件夹到t的工作区映射(目录路径将出现在mappedpaths属性中)