更改 TFS 工作区的计算机名称

我的系统管理员把我的电脑重新命名,原来叫“我的笔记本电脑2”的地方现在只叫“我的笔记本电脑”了。

所以现在我所有的源代码控制绑定和签出文件都在寻找一个带有“ MyLaptop2”的工作区。

有没有办法将那个工作区重定向到我重命名的(但仍然是相同的)计算机?

101809 次浏览

在 VisualStudio 的“开发人员命令提示符”中运行此命令完成了以下任务:

tf workspaces /updateComputerName:MyOldComputerName /s:"http://MyServer:8080/tfs/MyCollection"

它必须在我想要分配工作区的计算机上运行(这就是它获得新计算机名的方式)。

  1. 复制项目文件夹
  2. 在 TeamExplorer/SourceControl 中映射原始本地文件夹
  3. 将只读属性设置为原始本地文件夹和子文件夹
  4. 从原始文件夹加载项目,联机并获取最新版本。本地文件将被覆盖。
  5. 关闭解决方案,删除原始文件夹,用原始文件夹名还原副本
  6. 打开解决方案,联机,您可以签入文件没有冲突。

然而,Vacano 是正确的,我需要 UpdateCompterName 切换之后的工作区名称。在我的例子中,工作区是旧的机器名称。

如果您不知道您的工作区名称,您可以使用以下方法找到所有的工作区名称:
tf workspaces /owner:* /computer:* /server:http://MyServer:8080/tfs/MyCollection

所以我得出了以下结论。
tf workspaces /updateComputerName:MyOldComputerName MyOldComputerName /s:http://MyServer:8080/tfs/MyCollection

我尝试运行其他答案中提到的命令,但是,我的项目是托管在 TFS 在线( visualstudio.com ) ,所以我需要首先验证,因为我一直得到这个错误消息:

TF400813: Resource not available for anonymous access.

对于我来说,对于 删除工作空间并重新连接来说更容易也更快:

文件 > 源代码管理 > 高级 > 工作区(删除工作区)

维卡诺的方法对我很有效。我尝试了好几次才得到正确的 TFS URL,所以我想我应该把它发布给那些正在使用微软 Visual Studio TFS 托管的人(目前对小团队是免费的)。

我首先从计算机上的命令提示符切换到正确的目录:

cd c:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE

然后我运行命令:

tf workspaces /updateComputerName:OLDCOMPUTERNAME /s:"https://MYCOMPANY.visualstudio.com/DefaultCollection"

然后它告诉我,我的新工作区与我的新计算机名称的机器名称相匹配。

希望这条路能帮上忙。

只是为了澄清 TFS 在线(MS 托管 TFS)的用户-如果你的网址是“ mytfs.visualstudio.com”,你的收藏是“默认收藏”,上面列出的命令将是:

列出所有工作区: Tf workspace/owner: */computer: */server: < a href = “ https://mytfs.visalstudio.com/DefaultCollection”rel = “ nofollow”> https://mytfs.visualstudio.com/defaultcollection

从 OldPcName 更新: Tf workspace/updateComputerName: OldPcName/server: < a href = “ https://mytfs.visalstudio.com/DefaultCollection”rel = “ nofollow”> https://mytfs.visualstudio.com/defaultcollection

简而言之,指定 HTTPS,忽略端口,不要添加/tfs/文件夹结构。

然后,您可以通过访问源代码管理资源管理器并使用 Workspace 下拉列表来选择(并根据需要重命名)工作区。

在 Visual Studio 中。.转到“ TeamExplorer-Home”... 您将能够看到您的工作区名称。.点击“管理”。.添加您的工作空间。.这个应该能行。.

我也有同样的问题,所以来了这里。但后来我关门重新开放了视觉工作室,一切都很好。所以... 这可能是解决某些问题的办法。

下面给出它是如何对我起作用的。

步骤1。转到 VisualStudio 命令提示符

第二步。在上面的命令提示符中键入命令 tf workspaces。此命令将显示您在计算机中创建的所有工作区以及 集合名称。仔细查看命令结果的第一行。

步骤3。在同一命令提示符中输入命令 tf workspaces /updateComputerName:OLDCOMPUTERNAME /s:"collection name as shown above"

旧的计算机名称和收藏品名称在这里非常重要。

如果有人不喜欢 CommandPromt(像我一样) 这个信息图表可以帮助你,这里是博客的文本片段:

单击 VisualStudio2013上的“文件”菜单。现在单击

源代码管理-> 高级-> 工作区. 。

这将打开一个标题为“管理工作区”的窗口。它显示了您可以访问的此计算机上的工作区列表。该列表包含以下4列:

  1. 工作区名称
  2. 电脑
  3. 工作区负责人
  4. 注释(如果是在创建工作区时添加的)

添加工作区: 如果 Workspace Manager 是空的,那么您可能还没有添加一个。单击 Add 按钮并输入服务器/用户名/密码,它将为您列出添加的服务器/用户名/密码。

更新工作区: 稍后,如果您已经更改了计算机名,或者您想要相应地更新您的工作区,请选择您想要编辑的工作区并单击“编辑”按钮; 在这里您可以更新您的工作区详细信息。

避免在创建新工作区后获取和映射

  1. 运行 cmd

  2. 导航到可视化工作室 IDE 路径:

    C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE
    
  3. Run this command:

    tf workspaces /updateComputerName:MyOldComputerName /s:"http://MyServer/tfs/MyCollection"
    
  4. In "manage workspace", delete the added workspace (named as your current computer name), and rename the old one to your current computer name.

In this scenario you don't need any extra get and map.

为了扩展一些早期的答案,我的集合名称中有一些空格。即使集合名称用引号("http://1.2.3.4:8080/tfs/My Collection Name")括起来,也需要用 %20替换任何空格字符,以正确地解析集合名称(tf workspaces /updateComputerName:MyOldComputerName /s:"http://1.2.3.4:8080/tfs/My%20Collection%20Name")

我不得不在 VS 的开发者命令提示符中这样做:

C:\Program Files (x86)\Microsoft Visual Studio 14.0>tf workspace /delete /server:http://tfs.mysite.com:8080/tfs/defaultcollection devshed22;Warren

转到 VS 命令提示符并键入以下内容:

Tf 工作区

这将为您提供可用的集合。复制预定集合的路径(本质上是一个 URL)。然后键入以下内容:

Tf workspace/updateComputerName: “ OLD _ NAME”/Collection: “从上面复制的 URL”

(不包括上述引述)

用户回答: 开放和免费为我工作。 文件-> 源代码管理-> 高级-> 工作区

这将打开一个标题为“管理工作区”的窗口。 选择“显示远程工作区”,该选项显示阻塞。Cs 文件更改。我搬走了,我现在工作很好:)

在 VS2017/2019中,我刚刚更改了工作区的计算机名称,如下所示:

命令: tf vc workspace WORKSPACE-NAME /computer:NEW-COMP-NAME

enter image description here

这个命令成功之后,您将得到一个 Workspace Dialog-jut 按 OK

enter image description here

现在,您可以在新计算机或重命名的旧计算机中转到 VisualStudio,工作区将出现在那里,而无需重新启动 VS。

注意: 上面 ^ ^-考虑到域用户是相同的。